From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KRVfV-0007Pj-5w for qemu-devel@nongnu.org; Fri, 08 Aug 2008 13:22:25 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KRVfT-0007PX-Nk for qemu-devel@nongnu.org; Fri, 08 Aug 2008 13:22:24 -0400 Received: from [199.232.76.173] (port=41183 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KRVfT-0007PU-Gn for qemu-devel@nongnu.org; Fri, 08 Aug 2008 13:22:23 -0400 Received: from wf-out-1314.google.com ([209.85.200.171]:11175) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KRVfT-0001U7-0y for qemu-devel@nongnu.org; Fri, 08 Aug 2008 13:22:23 -0400 Received: by wf-out-1314.google.com with SMTP id 27so1813300wfd.4 for ; Fri, 08 Aug 2008 10:22:21 -0700 (PDT) Message-ID: Date: Fri, 8 Aug 2008 20:22:21 +0300 From: "Blue Swirl" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_50142_5198571.1218216141872" Subject: [Qemu-devel] [RFC, PATCH] Add -Wstrict-prototypes, maybe later -Wmissing-prototypes Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel ------=_Part_50142_5198571.1218216141872 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, I made a series of patches that add -Wstrict-prototypes to the CFLAGS and then -Wmissing-prototypes, both of which are enabled by Xen. I also fixed most warnings generated -Wstrict-prototypes and some of them for the -Wmissing-prototypes case. Compiling with -Wstrict-prototypes produces only one extra warning. I think this flag should be enabled. But dyngen targets spew a lot of noise with -Wmissing-prototypes so I'm not proposing to add that (or maybe that should be coupled with CONFIG_DYNGEN_OP). This also meant that I did not care enough to fix all warnings. The current warning fix should be safe to apply anyway. Comments? ------=_Part_50142_5198571.1218216141872 Content-Type: plain/text; name=wstrict_prototypes.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fjn29uhs Content-Disposition: attachment; filename=wstrict_prototypes.diff SW5kZXg6IHFlbXUvTWFrZWZpbGUudGFyZ2V0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9NYWtl ZmlsZS50YXJnZXQJMjAwOC0wOC0wOCAxNTozNzoyNS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUv TWFrZWZpbGUudGFyZ2V0CTIwMDgtMDgtMDggMTU6Mzk6MjIuMDAwMDAwMDAwICswMDAwCkBAIC03 Myw3ICs3Myw3IEBACiBQUk9HUz0kKFFFTVVfUFJPRykKIAogIyBXZSByZXF1aXJlIC1PMiB0byBh dm9pZCB0aGUgc3RhY2sgc2V0dXAgcHJvbG9ndWUgaW4gRVhJVF9UQgotT1BfQ0ZMQUdTIDo9IC1X YWxsIC1PMiAtZyAtZm5vLXN0cmljdC1hbGlhc2luZworT1BfQ0ZMQUdTIDo9IC1XYWxsIC1Xc3Ry aWN0LXByb3RvdHlwZXMgLU8yIC1nIC1mbm8tc3RyaWN0LWFsaWFzaW5nCiAKICMgY2Mtb3B0aW9u CiAjIFVzYWdlOiBPUF9DRkxBR1MrPSQoY2FsbCBjYy1vcHRpb24sIC1mYWxpZ24tZnVuY3Rpb25z PTAsIC1tYWxpZ24tZnVuY3Rpb25zPTApCkluZGV4OiBxZW11L2NvbmZpZ3VyZQo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBxZW11Lm9yaWcvY29uZmlndXJlCTIwMDgtMDgtMDggMTU6Mzc6MTUuMDAwMDAwMDAwICsw MDAwCisrKyBxZW11L2NvbmZpZ3VyZQkyMDA4LTA4LTA4IDE1OjM3OjU2LjAwMDAwMDAwMCArMDAw MApAQCAtMzQ3LDcgKzM0Nyw3IEBACiBmaQogCiAjIGRlZmF1bHQgZmxhZ3MgZm9yIGFsbCBob3N0 cwotQ0ZMQUdTPSIkQ0ZMQUdTIC1XYWxsIC1PMiAtZyAtZm5vLXN0cmljdC1hbGlhc2luZyIKK0NG TEFHUz0iJENGTEFHUyAtV2FsbCAtV3N0cmljdC1wcm90b3R5cGVzIC1PMiAtZyAtZm5vLXN0cmlj dC1hbGlhc2luZyIKIExERkxBR1M9IiRMREZMQUdTIC1nIgogaWYgdGVzdCAiJHdlcnJvciIgPSAi eWVzIiA7IHRoZW4KIENGTEFHUz0iJENGTEFHUyAtV2Vycm9yIgo= ------=_Part_50142_5198571.1218216141872 Content-Type: plain/text; name=fix_wstrict_prototypes_warnings.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fjn2b34o Content-Disposition: attachment; filename=fix_wstrict_prototypes_warnings.diff SW5kZXg6IHFlbXUvZGlzYXMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvZGlzYXMuYwkyMDA4 LTA4LTA4IDE1OjU1OjE5LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9kaXNhcy5jCTIwMDgtMDgt MDggMTU6NTY6MzYuMDAwMDAwMDAwICswMDAwCkBAIC0zNDEsMTEgKzM0MSw4IEBACiBzdGF0aWMg Q1BVU3RhdGUgKm1vbml0b3JfZGlzYXNfZW52OwogCiBzdGF0aWMgaW50Ci1tb25pdG9yX3JlYWRf bWVtb3J5IChtZW1hZGRyLCBteWFkZHIsIGxlbmd0aCwgaW5mbykKLSAgICAgYmZkX3ZtYSBtZW1h ZGRyOwotICAgICBiZmRfYnl0ZSAqbXlhZGRyOwotICAgICBpbnQgbGVuZ3RoOwotICAgICBzdHJ1 Y3QgZGlzYXNzZW1ibGVfaW5mbyAqaW5mbzsKK21vbml0b3JfcmVhZF9tZW1vcnkgKGJmZF92bWEg bWVtYWRkciwgYmZkX2J5dGUgKm15YWRkciwgaW50IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBkaXNhc3NlbWJsZV9pbmZvICppbmZvKQogewogICAgIGlmIChtb25pdG9yX2Rp c2FzX2lzX3BoeXNpY2FsKSB7CiAgICAgICAgIGNwdV9waHlzaWNhbF9tZW1vcnlfcncobWVtYWRk ciwgbXlhZGRyLCBsZW5ndGgsIDApOwpJbmRleDogcWVtdS9ody9taXBzX21hbHRhLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gcWVtdS5vcmlnL2h3L21pcHNfbWFsdGEuYwkyMDA4LTA4LTA4IDE2OjAxOjU2LjAw MDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9taXBzX21hbHRhLmMJMjAwOC0wOC0wOCAxNjowMjow OS4wMDAwMDAwMDAgKzAwMDAKQEAgLTE1NSw3ICsxNTUsNyBAQAogICAgIH0sCiB9OwogCi1zdGF0 aWMgdWludDhfdCBlZXByb20yNGMweF9yZWFkKCkKK3N0YXRpYyB1aW50OF90IGVlcHJvbTI0YzB4 X3JlYWQodm9pZCkKIHsKICAgICBsb2dvdXQoIiV1OiBzY2wgPSAldSwgc2RhID0gJXUsIGRhdGEg PSAweCUwMnhcbiIsCiAgICAgICAgIGVlcHJvbS50aWNrLCBlZXByb20uc2NsLCBlZXByb20uc2Rh LCBlZXByb20uZGF0YSk7CkluZGV4OiBxZW11L2h3L3NoaXguYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11 Lm9yaWcvaHcvc2hpeC5jCTIwMDgtMDgtMDggMTY6MDg6NTkuMDAwMDAwMDAwICswMDAwCisrKyBx ZW11L2h3L3NoaXguYwkyMDA4LTA4LTA4IDE2OjA5OjE5LjAwMDAwMDAwMCArMDAwMApAQCAtNDUs MTcgKzQ1LDE3IEBACiAgICAgLyogWFhYWFggKi8KIH0KIAotdm9pZCBwaWNfaW5mbygpCit2b2lk IHBpY19pbmZvKHZvaWQpCiB7CiAgICAgLyogWFhYWFggKi8KIH0KIAotdm9pZCB2Z2FfdXBkYXRl X2Rpc3BsYXkoKQordm9pZCB2Z2FfdXBkYXRlX2Rpc3BsYXkodm9pZCkKIHsKICAgICAvKiBYWFhY WCAqLwogfQogCi12b2lkIHZnYV9pbnZhbGlkYXRlX2Rpc3BsYXkoKQordm9pZCB2Z2FfaW52YWxp ZGF0ZV9kaXNwbGF5KHZvaWQpCiB7CiAgICAgLyogWFhYWFggKi8KIH0KSW5kZXg6IHFlbXUvbWlw cy1kaXMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvbWlwcy1kaXMuYwkyMDA4LTA4LTA4IDE2 OjAzOjQ5LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9taXBzLWRpcy5jCTIwMDgtMDgtMDggMTY6 MDQ6MDMuMDAwMDAwMDAwICswMDAwCkBAIC0zMzIyLDkgKzMzMjIsNyBAQAogfQogCiB2b2lkCi1w YXJzZV9taXBzX2Rpc19vcHRpb24gKG9wdGlvbiwgbGVuKQotICAgICBjb25zdCBjaGFyICpvcHRp b247Ci0gICAgIHVuc2lnbmVkIGludCBsZW47CitwYXJzZV9taXBzX2Rpc19vcHRpb24gKGNvbnN0 IGNoYXIgKm9wdGlvbiwgdW5zaWduZWQgaW50IGxlbikKIHsKICAgdW5zaWduZWQgaW50IGksIG9w dGlvbmxlbiwgdmFsbGVuOwogICBjb25zdCBjaGFyICp2YWw7CkluZGV4OiBxZW11L3RhcmdldC1h bHBoYS90cmFuc2xhdGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdGFyZ2V0LWFscGhhL3Ry YW5zbGF0ZS5jCTIwMDgtMDgtMDggMTY6MTE6MjkuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L3Rh cmdldC1hbHBoYS90cmFuc2xhdGUuYwkyMDA4LTA4LTA4IDE2OjExOjM5LjAwMDAwMDAwMCArMDAw MApAQCAtNDcsNyArNDcsNyBAQAogCiAjaW5jbHVkZSAiZ2VuLWljb3VudC5oIgogCi1zdGF0aWMg dm9pZCBhbHBoYV90cmFuc2xhdGVfaW5pdCgpCitzdGF0aWMgdm9pZCBhbHBoYV90cmFuc2xhdGVf aW5pdCh2b2lkKQogewogICAgIHN0YXRpYyBpbnQgZG9uZV9pbml0ID0gMDsKICAgICBpZiAoZG9u ZV9pbml0KQpJbmRleDogcWVtdS90YXJnZXQtc2g0L3RyYW5zbGF0ZS5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHFlbXUub3JpZy90YXJnZXQtc2g0L3RyYW5zbGF0ZS5jCTIwMDgtMDgtMDggMTY6MTg6MTkuMDAw MDAwMDAwICswMDAwCisrKyBxZW11L3RhcmdldC1zaDQvdHJhbnNsYXRlLmMJMjAwOC0wOC0wOCAx NjoxODoyOC4wMDAwMDAwMDAgKzAwMDAKQEAgLTYwLDcgKzYwLDcgQEAKIAogI2luY2x1ZGUgImdl bi1pY291bnQuaCIKIAotc3RhdGljIHZvaWQgc2g0X3RyYW5zbGF0ZV9pbml0KCkKK3N0YXRpYyB2 b2lkIHNoNF90cmFuc2xhdGVfaW5pdCh2b2lkKQogewogICAgIHN0YXRpYyBpbnQgZG9uZV9pbml0 ID0gMDsKICAgICBpZiAoZG9uZV9pbml0KQo= ------=_Part_50142_5198571.1218216141872 Content-Type: plain/text; name=wmissing_prototypes.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fjn2bad3 Content-Disposition: attachment; filename=wmissing_prototypes.diff SW5kZXg6IHFlbXUvTWFrZWZpbGUudGFyZ2V0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9NYWtl ZmlsZS50YXJnZXQJMjAwOC0wOC0wOCAxNjoyMToxMC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUv TWFrZWZpbGUudGFyZ2V0CTIwMDgtMDgtMDggMTY6MjE6NTMuMDAwMDAwMDAwICswMDAwCkBAIC03 Myw3ICs3Myw3IEBACiBQUk9HUz0kKFFFTVVfUFJPRykKIAogIyBXZSByZXF1aXJlIC1PMiB0byBh dm9pZCB0aGUgc3RhY2sgc2V0dXAgcHJvbG9ndWUgaW4gRVhJVF9UQgotT1BfQ0ZMQUdTIDo9IC1X YWxsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLU8yIC1nIC1mbm8tc3RyaWN0LWFsaWFzaW5nCitPUF9D RkxBR1MgOj0gLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcyAt TzIgLWcgLWZuby1zdHJpY3QtYWxpYXNpbmcKIAogIyBjYy1vcHRpb24KICMgVXNhZ2U6IE9QX0NG TEFHUys9JChjYWxsIGNjLW9wdGlvbiwgLWZhbGlnbi1mdW5jdGlvbnM9MCwgLW1hbGlnbi1mdW5j dGlvbnM9MCkKSW5kZXg6IHFlbXUvY29uZmlndXJlCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9j b25maWd1cmUJMjAwOC0wOC0wOCAxNjoyMToxOC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvY29u ZmlndXJlCTIwMDgtMDgtMDggMTY6MjE6MzQuMDAwMDAwMDAwICswMDAwCkBAIC0zNDcsNyArMzQ3 LDcgQEAKIGZpCiAKICMgZGVmYXVsdCBmbGFncyBmb3IgYWxsIGhvc3RzCi1DRkxBR1M9IiRDRkxB R1MgLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBlcyAtTzIgLWcgLWZuby1zdHJpY3QtYWxpYXNpbmci CitDRkxBR1M9IiRDRkxBR1MgLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJv dG90eXBlcyAtTzIgLWcgLWZuby1zdHJpY3QtYWxpYXNpbmciCiBMREZMQUdTPSIkTERGTEFHUyAt ZyIKIGlmIHRlc3QgIiR3ZXJyb3IiID0gInllcyIgOyB0aGVuCiBDRkxBR1M9IiRDRkxBR1MgLVdl cnJvciIK ------=_Part_50142_5198571.1218216141872 Content-Type: plain/text; name=fix_wmissing_prototypes_warnings.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fjn2bftb Content-Disposition: attachment; filename=fix_wmissing_prototypes_warnings.diff SW5kZXg6IHFlbXUvZHluZ2VuLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2R5bmdlbi5jCTIw MDgtMDgtMDggMTY6MjQ6MTMuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2R5bmdlbi5jCTIwMDgt MDgtMDggMTY6MjU6NTMuMDAwMDAwMDAwICswMDAwCkBAIC0yNzIsNyArMjcyLDcgQEAKICAgICBy ZXR1cm4gZGF0YTsKIH0KIAotaW50IHN0cnN0YXJ0KGNvbnN0IGNoYXIgKnN0ciwgY29uc3QgY2hh ciAqdmFsLCBjb25zdCBjaGFyICoqcHRyKQorc3RhdGljIGludCBzdHJzdGFydChjb25zdCBjaGFy ICpzdHIsIGNvbnN0IGNoYXIgKnZhbCwgY29uc3QgY2hhciAqKnB0cikKIHsKICAgICBjb25zdCBj aGFyICpwLCAqcTsKICAgICBwID0gc3RyOwpAQCAtMjg4LDcgKzI4OCw3IEBACiAgICAgcmV0dXJu IDE7CiB9CiAKLXZvaWQgcHN0cmNweShjaGFyICpidWYsIGludCBidWZfc2l6ZSwgY29uc3QgY2hh ciAqc3RyKQorc3RhdGljIHZvaWQgcHN0cmNweShjaGFyICpidWYsIGludCBidWZfc2l6ZSwgY29u c3QgY2hhciAqc3RyKQogewogICAgIGludCBjOwogICAgIGNoYXIgKnEgPSBidWY7CkBAIC0zMDUs MzIgKzMwNSwzMiBAQAogICAgICpxID0gJ1wwJzsKIH0KIAotdm9pZCBzd2FiMTZzKHVpbnQxNl90 ICpwKQorc3RhdGljIHZvaWQgc3dhYjE2cyh1aW50MTZfdCAqcCkKIHsKICAgICAqcCA9IGJzd2Fw MTYoKnApOwogfQogCi12b2lkIHN3YWIzMnModWludDMyX3QgKnApCitzdGF0aWMgdm9pZCBzd2Fi MzJzKHVpbnQzMl90ICpwKQogewogICAgICpwID0gYnN3YXAzMigqcCk7CiB9CiAKLXZvaWQgc3dh YjMyc3MoaW50MzJfdCAqcCkKK3N0YXRpYyB2b2lkIHN3YWIzMnNzKGludDMyX3QgKnApCiB7CiAg ICAgKnAgPSBic3dhcDMyKCpwKTsKIH0KIAotdm9pZCBzd2FiNjRzKHVpbnQ2NF90ICpwKQorc3Rh dGljIHZvaWQgc3dhYjY0cyh1aW50NjRfdCAqcCkKIHsKICAgICAqcCA9IGJzd2FwNjQoKnApOwog fQogCi12b2lkIHN3YWI2NHNzKGludDY0X3QgKnApCitzdGF0aWMgdm9pZCBzd2FiNjRzcyhpbnQ2 NF90ICpwKQogewogICAgICpwID0gYnN3YXA2NCgqcCk7CiB9CiAKLXVpbnQxNl90IGdldDE2KHVp bnQxNl90ICpwKQorc3RhdGljIHVpbnQxNl90IGdldDE2KHVpbnQxNl90ICpwKQogewogICAgIHVp bnQxNl90IHZhbDsKICAgICB2YWwgPSAqcDsKQEAgLTMzOSw3ICszMzksNyBAQAogICAgIHJldHVy biB2YWw7CiB9CiAKLXVpbnQzMl90IGdldDMyKHVpbnQzMl90ICpwKQorc3RhdGljIHVpbnQzMl90 IGdldDMyKHVpbnQzMl90ICpwKQogewogICAgIHVpbnQzMl90IHZhbDsKICAgICB2YWwgPSAqcDsK QEAgLTM0OCwxNCArMzQ4LDE0IEBACiAgICAgcmV0dXJuIHZhbDsKIH0KIAotdm9pZCBwdXQxNih1 aW50MTZfdCAqcCwgdWludDE2X3QgdmFsKQorc3RhdGljIHZvaWQgcHV0MTYodWludDE2X3QgKnAs IHVpbnQxNl90IHZhbCkKIHsKICAgICBpZiAoZG9fc3dhcCkKICAgICAgICAgdmFsID0gYnN3YXAx Nih2YWwpOwogICAgICpwID0gdmFsOwogfQogCi12b2lkIHB1dDMyKHVpbnQzMl90ICpwLCB1aW50 MzJfdCB2YWwpCitzdGF0aWMgdm9pZCBwdXQzMih1aW50MzJfdCAqcCwgdWludDMyX3QgdmFsKQog ewogICAgIGlmIChkb19zd2FwKQogICAgICAgICB2YWwgPSBic3dhcDMyKHZhbCk7CkBAIC0zNzgs NyArMzc4LDcgQEAKIHN0cnVjdCBlbGZoZHIgZWhkcjsKIGNoYXIgKnN0cnRhYjsKIAotaW50IGVs Zl9tdXN0X3N3YXAoc3RydWN0IGVsZmhkciAqaCkKK3N0YXRpYyBpbnQgZWxmX211c3Rfc3dhcChz dHJ1Y3QgZWxmaGRyICpoKQogewogICB1bmlvbiB7CiAgICAgICB1aW50MzJfdCBpOwpAQCAtMzkw LDcgKzM5MCw3IEBACiAgICAgICAoc3dhcHRlc3QuYlswXSA9PSAwKTsKIH0KIAotdm9pZCBlbGZf c3dhcF9laGRyKHN0cnVjdCBlbGZoZHIgKmgpCitzdGF0aWMgdm9pZCBlbGZfc3dhcF9laGRyKHN0 cnVjdCBlbGZoZHIgKmgpCiB7CiAgICAgc3dhYjE2cygmaC0+ZV90eXBlKTsJCQkvKiBPYmplY3Qg ZmlsZSB0eXBlICovCiAgICAgc3dhYjE2cygmaC0+CWVfbWFjaGluZSk7CQkvKiBBcmNoaXRlY3R1 cmUgKi8KQEAgLTQwNyw3ICs0MDcsNyBAQAogICAgIHN3YWIxNnMoJmgtPgllX3Noc3RybmR4KTsJ CS8qIFNlY3Rpb24gaGVhZGVyIHN0cmluZyB0YWJsZSBpbmRleCAqLwogfQogCi12b2lkIGVsZl9z d2FwX3NoZHIoc3RydWN0IGVsZl9zaGRyICpoKQorc3RhdGljIHZvaWQgZWxmX3N3YXBfc2hkcihz dHJ1Y3QgZWxmX3NoZHIgKmgpCiB7CiAgIHN3YWIzMnMoJmgtPglzaF9uYW1lKTsJCS8qIFNlY3Rp b24gbmFtZSAoc3RyaW5nIHRibCBpbmRleCkgKi8KICAgc3dhYjMycygmaC0+CXNoX3R5cGUpOwkJ LyogU2VjdGlvbiB0eXBlICovCkBAIC00MjEsNyArNDIxLDcgQEAKICAgc3dhYmxzKCZoLT4Jc2hf ZW50c2l6ZSk7CQkvKiBFbnRyeSBzaXplIGlmIHNlY3Rpb24gaG9sZHMgdGFibGUgKi8KIH0KIAot dm9pZCBlbGZfc3dhcF9waGRyKHN0cnVjdCBlbGZfcGhkciAqaCkKK3N0YXRpYyB2b2lkIGVsZl9z d2FwX3BoZHIoc3RydWN0IGVsZl9waGRyICpoKQogewogICAgIHN3YWIzMnMoJmgtPnBfdHlwZSk7 CQkJLyogU2VnbWVudCB0eXBlICovCiAgICAgc3dhYmxzKCZoLT5wX29mZnNldCk7CQkvKiBTZWdt ZW50IGZpbGUgb2Zmc2V0ICovCkBAIC00MzMsNyArNDMzLDcgQEAKICAgICBzd2FibHMoJmgtPnBf YWxpZ24pOwkJLyogU2VnbWVudCBhbGlnbm1lbnQgKi8KIH0KIAotdm9pZCBlbGZfc3dhcF9yZWwo RUxGX1JFTE9DICpyZWwpCitzdGF0aWMgdm9pZCBlbGZfc3dhcF9yZWwoRUxGX1JFTE9DICpyZWwp CiB7CiAgICAgc3dhYmxzKCZyZWwtPnJfb2Zmc2V0KTsKICAgICBzd2FibHMoJnJlbC0+cl9pbmZv KTsKQEAgLTQ0Miw4ICs0NDIsOCBAQAogI2VuZGlmCiB9CiAKLXN0cnVjdCBlbGZfc2hkciAqZmlu ZF9lbGZfc2VjdGlvbihzdHJ1Y3QgZWxmX3NoZHIgKnNoZHIsIGludCBzaG51bSwgY29uc3QgY2hh ciAqc2hzdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq bmFtZSkKK3N0YXRpYyBzdHJ1Y3QgZWxmX3NoZHIgKmZpbmRfZWxmX3NlY3Rpb24oc3RydWN0IGVs Zl9zaGRyICpzaGRyLCBpbnQgc2hudW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKnNoc3RyLCBjb25zdCBjaGFyICpuYW1lKQogewogICAgIGlu dCBpOwogICAgIGNvbnN0IGNoYXIgKnNobmFtZTsKQEAgLTQ2MCw3ICs0NjAsNyBAQAogICAgIHJl dHVybiBOVUxMOwogfQogCi1pbnQgZmluZF9yZWxvYyhpbnQgc2hfaW5kZXgpCitzdGF0aWMgaW50 IGZpbmRfcmVsb2MoaW50IHNoX2luZGV4KQogewogICAgIHN0cnVjdCBlbGZfc2hkciAqc2VjOwog ICAgIGludCBpOwpAQCAtNDg5LDcgKzQ4OSw3IEBACiB9CiAKIC8qIGxvYWQgYW4gZWxmIG9iamVj dCBmaWxlICovCi1pbnQgbG9hZF9vYmplY3QoY29uc3QgY2hhciAqZmlsZW5hbWUpCitzdGF0aWMg aW50IGxvYWRfb2JqZWN0KGNvbnN0IGNoYXIgKmZpbGVuYW1lKQogewogICAgIGludCBmZDsKICAg ICBzdHJ1Y3QgZWxmX3NoZHIgKnNlYywgKnN5bXRhYl9zZWMsICpzdHJ0YWJfc2VjLCAqdGV4dF9z ZWM7CkBAIC0xMjI3LDcgKzEyMjcsNyBAQAogI2VuZGlmIC8qIENPTkZJR19GT1JNQVRfTUFDSCAq LwogCiAvKiByZXR1cm4gdHJ1ZSBpZiB0aGUgZXhwcmVzc2lvbiBpcyBhIGxhYmVsIHJlZmVyZW5j ZSAqLwotaW50IGdldF9yZWxvY19leHByKGNoYXIgKm5hbWUsIGludCBuYW1lX3NpemUsIGNvbnN0 IGNoYXIgKnN5bV9uYW1lKQorc3RhdGljIGludCBnZXRfcmVsb2NfZXhwcihjaGFyICpuYW1lLCBp bnQgbmFtZV9zaXplLCBjb25zdCBjaGFyICpzeW1fbmFtZSkKIHsKICAgICBjb25zdCBjaGFyICpw OwogCkBAIC0xMjk0LDggKzEyOTQsOCBAQAogI2RlZmluZSBNQVhfQVJHUyAzCiAKIC8qIGdlbmVy YXRlIG9wIGNvZGUgKi8KLXZvaWQgZ2VuX2NvZGUoY29uc3QgY2hhciAqbmFtZSwgaG9zdF91bG9u ZyBvZmZzZXQsIGhvc3RfdWxvbmcgc2l6ZSwKLSAgICAgICAgICAgICAgRklMRSAqb3V0ZmlsZSwg aW50IGdlbl9zd2l0Y2gpCitzdGF0aWMgdm9pZCBnZW5fY29kZShjb25zdCBjaGFyICpuYW1lLCBo b3N0X3Vsb25nIG9mZnNldCwgaG9zdF91bG9uZyBzaXplLAorICAgICAgICAgICAgICAgICAgICAg RklMRSAqb3V0ZmlsZSwgaW50IGdlbl9zd2l0Y2gpCiB7CiAgICAgaW50IGNvcHlfc2l6ZSA9IDA7 CiAgICAgdWludDhfdCAqcF9zdGFydCwgKnBfZW5kOwpAQCAtMjYzMCw3ICsyNjMwLDcgQEAKICAg ICB9CiB9CiAKLWludCBnZW5fZmlsZShGSUxFICpvdXRmaWxlLCBpbnQgb3V0X3R5cGUpCitzdGF0 aWMgaW50IGdlbl9maWxlKEZJTEUgKm91dGZpbGUsIGludCBvdXRfdHlwZSkKIHsKICAgICBpbnQg aTsKICAgICBFWEVfU1lNICpzeW07CkBAIC0yNzQyLDcgKzI3NDIsNyBAQAogICAgIHJldHVybiAw OwogfQogCi12b2lkIHVzYWdlKHZvaWQpCitzdGF0aWMgdm9pZCB1c2FnZSh2b2lkKQogewogICAg IHByaW50ZigiZHluZ2VuIChjKSAyMDAzIEZhYnJpY2UgQmVsbGFyZFxuIgogICAgICAgICAgICAi dXNhZ2U6IGR5bmdlbiBbLW8gb3V0ZmlsZV0gWy1jXSBvYmpmaWxlXG4iCkluZGV4OiBxZW11L2V4 ZWMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvZXhlYy5jCTIwMDgtMDgtMDggMTY6MzA6MTMu MDAwMDAwMDAwICswMDAwCisrKyBxZW11L2V4ZWMuYwkyMDA4LTA4LTA4IDE2OjMwOjI0LjAwMDAw MDAwMCArMDAwMApAQCAtMzg2LDcgKzM4Niw3IEBACiBzdGF0aWMgdWludDhfdCBzdGF0aWNfY29k ZV9nZW5fYnVmZmVyW0RFRkFVTFRfQ09ERV9HRU5fQlVGRkVSX1NJWkVdOwogI2VuZGlmCiAKLXZv aWQgY29kZV9nZW5fYWxsb2ModW5zaWduZWQgbG9uZyB0Yl9zaXplKQorc3RhdGljIHZvaWQgY29k ZV9nZW5fYWxsb2ModW5zaWduZWQgbG9uZyB0Yl9zaXplKQogewogI2lmZGVmIFVTRV9TVEFUSUNf Q09ERV9HRU5fQlVGRkVSCiAgICAgY29kZV9nZW5fYnVmZmVyID0gc3RhdGljX2NvZGVfZ2VuX2J1 ZmZlcjsKSW5kZXg6IHFlbXUvaHcvdHdsOTIyMzAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcv aHcvdHdsOTIyMzAuYwkyMDA4LTA4LTA4IDE2OjI2OjU0LjAwMDAwMDAwMCArMDAwMAorKysgcWVt dS9ody90d2w5MjIzMC5jCTIwMDgtMDgtMDggMTY6Mjc6MDUuMDAwMDAwMDAwICswMDAwCkBAIC0x MjksNyArMTI5LDcgQEAKICAgICBtZW5lbGF1c191cGRhdGUocyk7CiB9CiAKLXZvaWQgbWVuZWxh dXNfcmVzZXQoaTJjX3NsYXZlICppMmMpCitzdGF0aWMgdm9pZCBtZW5lbGF1c19yZXNldChpMmNf c2xhdmUgKmkyYykKIHsKICAgICBzdHJ1Y3QgbWVuZWxhdXNfcyAqcyA9IChzdHJ1Y3QgbWVuZWxh dXNfcyAqKSBpMmM7CiAgICAgcy0+cmVnID0gMHgwMDsKSW5kZXg6IHFlbXUvaHcvdXNiLXNlcmlh bC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody91c2Itc2VyaWFsLmMJMjAwOC0wOC0wOCAx NjoyNzoxNi4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvdXNiLXNlcmlhbC5jCTIwMDgtMDgt MDggMTY6Mjc6MzkuMDAwMDAwMDAwICswMDAwCkBAIC00NDcsMTMgKzQ0NywxMyBAQAogICAgIHFl bXVfZnJlZShzKTsKIH0KIAotaW50IHVzYl9zZXJpYWxfY2FuX3JlYWQodm9pZCAqb3BhcXVlKQor c3RhdGljIGludCB1c2Jfc2VyaWFsX2Nhbl9yZWFkKHZvaWQgKm9wYXF1ZSkKIHsKICAgICBVU0JT ZXJpYWxTdGF0ZSAqcyA9IG9wYXF1ZTsKICAgICByZXR1cm4gUkVDVl9CVUYgLSBzLT5yZWN2X3Vz ZWQ7CiB9CiAKLXZvaWQgdXNiX3NlcmlhbF9yZWFkKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhf dCAqYnVmLCBpbnQgc2l6ZSkKK3N0YXRpYyB2b2lkIHVzYl9zZXJpYWxfcmVhZCh2b2lkICpvcGFx dWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IHNpemUpCiB7CiAgICAgVVNCU2VyaWFsU3RhdGUg KnMgPSBvcGFxdWU7CiAgICAgaW50IGZpcnN0X3NpemUgPSBSRUNWX0JVRiAtIHMtPnJlY3ZfcHRy OwpAQCAtNDY1LDcgKzQ2NSw3IEBACiAgICAgcy0+cmVjdl91c2VkICs9IHNpemU7CiB9CiAKLXZv aWQgdXNiX3NlcmlhbF9ldmVudCh2b2lkICpvcGFxdWUsIGludCBldmVudCkKK3N0YXRpYyB2b2lk IHVzYl9zZXJpYWxfZXZlbnQodm9pZCAqb3BhcXVlLCBpbnQgZXZlbnQpCiB7CiAgICAgVVNCU2Vy aWFsU3RhdGUgKnMgPSBvcGFxdWU7CiAKSW5kZXg6IHFlbXUvc2xpcnAvc2xpcnAuYwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBxZW11Lm9yaWcvc2xpcnAvc2xpcnAuYwkyMDA4LTA4LTA4IDE2OjI4OjU3LjAwMDAw MDAwMCArMDAwMAorKysgcWVtdS9zbGlycC9zbGlycC5jCTIwMDgtMDgtMDggMTY6Mjk6MjMuMDAw MDAwMDAwICswMDAwCkBAIC01NTQsNyArNTU0LDcgQEAKIAl1bnNpZ25lZCBjaGFyCQlhcl90aXBb NF07CQkvKiB0YXJnZXQgSVAgYWRkcmVzcwkJKi8KIH07CiAKLXZvaWQgYXJwX2lucHV0KGNvbnN0 IHVpbnQ4X3QgKnBrdCwgaW50IHBrdF9sZW4pCitzdGF0aWMgdm9pZCBhcnBfaW5wdXQoY29uc3Qg dWludDhfdCAqcGt0LCBpbnQgcGt0X2xlbikKIHsKICAgICBzdHJ1Y3QgZXRoaGRyICplaCA9IChz dHJ1Y3QgZXRoaGRyICopcGt0OwogICAgIHN0cnVjdCBhcnBoZHIgKmFoID0gKHN0cnVjdCBhcnBo ZHIgKikocGt0ICsgRVRIX0hMRU4pOwpJbmRleDogcWVtdS92bC5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFl bXUub3JpZy92bC5jCTIwMDgtMDgtMDggMTY6Mjk6NDIuMDAwMDAwMDAwICswMDAwCisrKyBxZW11 L3ZsLmMJMjAwOC0wOC0wOCAxNjoyOTo1My4wMDAwMDAwMDAgKzAwMDAKQEAgLTI1NTgsNyArMjU1 OCw3IEBACiAgICAgfQogfQogCi12b2lkIHB0eV9jaHJfdGltZXIodm9pZCAqb3BhcXVlKQorc3Rh dGljIHZvaWQgcHR5X2Nocl90aW1lcih2b2lkICpvcGFxdWUpCiB7CiAgICAgc3RydWN0IENoYXJE cml2ZXJTdGF0ZSAqY2hyID0gb3BhcXVlOwogICAgIFB0eUNoYXJEcml2ZXIgKnMgPSBjaHItPm9w YXF1ZTsKSW5kZXg6IHFlbXUvbGludXgtdXNlci9tYWluLmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5v cmlnL2xpbnV4LXVzZXIvbWFpbi5jCTIwMDgtMDgtMDggMTY6NDY6MzYuMDAwMDAwMDAwICswMDAw CisrKyBxZW11L2xpbnV4LXVzZXIvbWFpbi5jCTIwMDgtMDgtMDggMTY6NTU6MDIuMDAwMDAwMDAw ICswMDAwCkBAIC0xMDcsMTAgKzEwNywxMiBAQAogICAgIHJldHVybiAwOwogfQogCisjaWYgZGVm aW5lZChUQVJHRVRfSTM4NikKIGludCBjcHVfZ2V0X3BpY19pbnRlcnJ1cHQoQ1BVU3RhdGUgKmVu dikKIHsKICAgICByZXR1cm4gLTE7CiB9CisjZW5kaWYKIAogLyogdGltZXJzIGZvciByZHRzYyAq LwogCkBAIC0yMTUxLDcgKzIxNTMsNyBAQAogfQogI2VuZGlmIC8qIFRBUkdFVF9BTFBIQSAqLwog Ci12b2lkIHVzYWdlKHZvaWQpCitzdGF0aWMgdm9pZCB1c2FnZSh2b2lkKQogewogICAgIHByaW50 ZigicWVtdS0iIFRBUkdFVF9BUkNIICIgdmVyc2lvbiAiIFFFTVVfVkVSU0lPTiAiLCBDb3B5cmln aHQgKGMpIDIwMDMtMjAwOCBGYWJyaWNlIEJlbGxhcmRcbiIKICAgICAgICAgICAgInVzYWdlOiBx ZW11LSIgVEFSR0VUX0FSQ0ggIiBbb3B0aW9uc10gcHJvZ3JhbSBbYXJndW1lbnRzLi4uXVxuIgpJ bmRleDogcWVtdS9saW51eC11c2VyL3NpZ25hbC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9s aW51eC11c2VyL3NpZ25hbC5jCTIwMDgtMDgtMDggMTY6NTA6MzQuMDAwMDAwMDAwICswMDAwCisr KyBxZW11L2xpbnV4LXVzZXIvc2lnbmFsLmMJMjAwOC0wOC0wOCAxNjo1MTowNy4wMDAwMDAwMDAg KzAwMDAKQEAgLTE1NCw3ICsxNTQsOCBAQAogICAgICAgICBkLT5zaWdbaV0gPSB0c3dhcGwoZDEu c2lnW2ldKTsKIH0KIAotdm9pZCB0YXJnZXRfdG9faG9zdF9zaWdzZXRfaW50ZXJuYWwoc2lnc2V0 X3QgKmQsIGNvbnN0IHRhcmdldF9zaWdzZXRfdCAqcykKK3N0YXRpYyB2b2lkIHRhcmdldF90b19o b3N0X3NpZ3NldF9pbnRlcm5hbChzaWdzZXRfdCAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRfc2lnc2V0X3QgKnMpCiB7CiAgICAgaW50 IGk7CiAgICAgc2lnZW1wdHlzZXQoZCk7CkBAIC0zMjQsNyArMzI1LDcgQEAKIH0KIAogLyogYWJv cnQgZXhlY3V0aW9uIHdpdGggc2lnbmFsICovCi12b2lkIF9fYXR0cmlidXRlKChub3JldHVybikp IGZvcmNlX3NpZyhpbnQgc2lnKQorc3RhdGljIHZvaWQgX19hdHRyaWJ1dGUoKG5vcmV0dXJuKSkg Zm9yY2Vfc2lnKGludCBzaWcpCiB7CiAgICAgaW50IGhvc3Rfc2lnOwogICAgIGhvc3Rfc2lnID0g dGFyZ2V0X3RvX2hvc3Rfc2lnbmFsKHNpZyk7CkluZGV4OiBxZW11L2xpbnV4LXVzZXIvc3lzY2Fs bC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9saW51eC11c2VyL3N5c2NhbGwuYwkyMDA4LTA4 LTA4IDE2OjQ2OjQwLjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9saW51eC11c2VyL3N5c2NhbGwu YwkyMDA4LTA4LTA4IDE3OjAzOjE0LjAwMDAwMDAwMCArMDAwMApAQCAtMTA1LDM4ICsxMDUsMzgg QEAKICN1bmRlZiBfc3lzY2FsbDYKIAogI2RlZmluZSBfc3lzY2FsbDAodHlwZSxuYW1lKQkJXAot dHlwZSBuYW1lICh2b2lkKQkJCVwKK3N0YXRpYyB0eXBlIG5hbWUgKHZvaWQpCQkJXAogewkJCQkJ XAogCXJldHVybiBzeXNjYWxsKF9fTlJfIyNuYW1lKTsJXAogfQogCiAjZGVmaW5lIF9zeXNjYWxs MSh0eXBlLG5hbWUsdHlwZTEsYXJnMSkJCVwKLXR5cGUgbmFtZSAodHlwZTEgYXJnMSkJCQkJXAor c3RhdGljIHR5cGUgbmFtZSAodHlwZTEgYXJnMSkJCQlcCiB7CQkJCQkJXAogCXJldHVybiBzeXNj YWxsKF9fTlJfIyNuYW1lLCBhcmcxKTsJXAogfQogCiAjZGVmaW5lIF9zeXNjYWxsMih0eXBlLG5h bWUsdHlwZTEsYXJnMSx0eXBlMixhcmcyKQlcCi10eXBlIG5hbWUgKHR5cGUxIGFyZzEsdHlwZTIg YXJnMikJCQlcCitzdGF0aWMgdHlwZSBuYW1lICh0eXBlMSBhcmcxLHR5cGUyIGFyZzIpCQlcCiB7 CQkJCQkJCVwKIAlyZXR1cm4gc3lzY2FsbChfX05SXyMjbmFtZSwgYXJnMSwgYXJnMik7CVwKIH0K IAogI2RlZmluZSBfc3lzY2FsbDModHlwZSxuYW1lLHR5cGUxLGFyZzEsdHlwZTIsYXJnMix0eXBl MyxhcmczKQlcCi10eXBlIG5hbWUgKHR5cGUxIGFyZzEsdHlwZTIgYXJnMix0eXBlMyBhcmczKQkJ CVwKK3N0YXRpYyB0eXBlIG5hbWUgKHR5cGUxIGFyZzEsdHlwZTIgYXJnMix0eXBlMyBhcmczKQkJ XAogewkJCQkJCQkJXAogCXJldHVybiBzeXNjYWxsKF9fTlJfIyNuYW1lLCBhcmcxLCBhcmcyLCBh cmczKTsJCVwKIH0KIAogI2RlZmluZSBfc3lzY2FsbDQodHlwZSxuYW1lLHR5cGUxLGFyZzEsdHlw ZTIsYXJnMix0eXBlMyxhcmczLHR5cGU0LGFyZzQpCVwKLXR5cGUgbmFtZSAodHlwZTEgYXJnMSx0 eXBlMiBhcmcyLHR5cGUzIGFyZzMsdHlwZTQgYXJnNCkJCQkJXAorc3RhdGljIHR5cGUgbmFtZSAo dHlwZTEgYXJnMSx0eXBlMiBhcmcyLHR5cGUzIGFyZzMsdHlwZTQgYXJnNCkJCQlcCiB7CQkJCQkJ CQkJCVwKIAlyZXR1cm4gc3lzY2FsbChfX05SXyMjbmFtZSwgYXJnMSwgYXJnMiwgYXJnMywgYXJn NCk7CQkJXAogfQogCiAjZGVmaW5lIF9zeXNjYWxsNSh0eXBlLG5hbWUsdHlwZTEsYXJnMSx0eXBl MixhcmcyLHR5cGUzLGFyZzMsdHlwZTQsYXJnNCwJXAogCQkgIHR5cGU1LGFyZzUpCQkJCQkJCVwK LXR5cGUgbmFtZSAodHlwZTEgYXJnMSx0eXBlMiBhcmcyLHR5cGUzIGFyZzMsdHlwZTQgYXJnNCx0 eXBlNSBhcmc1KQkJXAorc3RhdGljIHR5cGUgbmFtZSAodHlwZTEgYXJnMSx0eXBlMiBhcmcyLHR5 cGUzIGFyZzMsdHlwZTQgYXJnNCx0eXBlNSBhcmc1KQlcCiB7CQkJCQkJCQkJCVwKIAlyZXR1cm4g c3lzY2FsbChfX05SXyMjbmFtZSwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNSk7CQlcCiB9 CkBAIC0xNDQsNyArMTQ0LDggQEAKIAogI2RlZmluZSBfc3lzY2FsbDYodHlwZSxuYW1lLHR5cGUx LGFyZzEsdHlwZTIsYXJnMix0eXBlMyxhcmczLHR5cGU0LGFyZzQsCVwKIAkJICB0eXBlNSxhcmc1 LHR5cGU2LGFyZzYpCQkJCQlcCi10eXBlIG5hbWUgKHR5cGUxIGFyZzEsdHlwZTIgYXJnMix0eXBl MyBhcmczLHR5cGU0IGFyZzQsdHlwZTUgYXJnNSx0eXBlNiBhcmc2KQlcCitzdGF0aWMgdHlwZSBu YW1lICh0eXBlMSBhcmcxLHR5cGUyIGFyZzIsdHlwZTMgYXJnMyx0eXBlNCBhcmc0LHR5cGU1IGFy ZzUsCVwKKyAgICAgICAgICAgICAgICAgIHR5cGU2IGFyZzYpCQkJCQkJCVwKIHsJCQkJCQkJCQkJ XAogCXJldHVybiBzeXNjYWxsKF9fTlJfIyNuYW1lLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBh cmc1LCBhcmc2KTsJXAogfQpAQCAtMjA0LDggKzIwNSwxMCBAQAogX3N5c2NhbGwzKGludCwgc3lz X2dldGRlbnRzNjQsIHVpbnQsIGZkLCBzdHJ1Y3QgZGlyZW50NjQgKiwgZGlycCwgdWludCwgY291 bnQpOwogI2VuZGlmCiBfc3lzY2FsbDIoaW50LCBzeXNfZ2V0cHJpb3JpdHksIGludCwgd2hpY2gs IGludCwgd2hvKTsKKyNpZiAhZGVmaW5lZCAoX194ODZfNjRfXykKIF9zeXNjYWxsNShpbnQsIF9s bHNlZWssICB1aW50LCAgZmQsIHVsb25nLCBoaSwgdWxvbmcsIGxvLAogICAgICAgICAgIGxvZmZf dCAqLCByZXMsIHVpbnQsIHdoKTsKKyNlbmRpZgogI2lmIGRlZmluZWQoVEFSR0VUX05SX2xpbmth dCkgJiYgZGVmaW5lZChfX05SX2xpbmthdCkKIF9zeXNjYWxsNShpbnQsc3lzX2xpbmthdCxpbnQs b2xkZGlyZmQsY29uc3QgY2hhciAqLG9sZHBhdGgsCiAJICBpbnQsbmV3ZGlyZmQsY29uc3QgY2hh ciAqLG5ld3BhdGgsaW50LGZsYWdzKQpAQCAtMjUzLDEwICsyNTYsMTEgQEAKIF9zeXNjYWxsNChp bnQsc3lzX3V0aW1lbnNhdCxpbnQsZGlyZmQsY29uc3QgY2hhciAqLHBhdGhuYW1lLAogICAgICAg ICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqLHRzcCxpbnQsZmxhZ3MpCiAjZW5kaWYKKyNpZiBk ZWZpbmVkKFVTRV9OUFRMKQogI2lmIGRlZmluZWQoVEFSR0VUX05SX2Z1dGV4KSAmJiBkZWZpbmVk KF9fTlJfZnV0ZXgpCiBfc3lzY2FsbDYoaW50LHN5c19mdXRleCxpbnQgKix1YWRkcixpbnQsb3As aW50LHZhbCwKICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKix0aW1lb3V0LGludCAq LHVhZGRyMixpbnQsdmFsMykKLSAgICAgICAgICAKKyNlbmRpZgogI2VuZGlmCiAKIGV4dGVybiBp bnQgcGVyc29uYWxpdHkoaW50KTsKQEAgLTI1MjIsOCArMjUyNiw4IEBACiB9CiAKIC8qIHNwZWNp ZmljIGFuZCB3ZWlyZCBpMzg2IHN5c2NhbGxzICovCi1hYmlfbG9uZyBkb19tb2RpZnlfbGR0KENQ VVg4NlN0YXRlICplbnYsIGludCBmdW5jLCBhYmlfdWxvbmcgcHRyLCAKLSAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBieXRlY291bnQpCitzdGF0aWMgYWJpX2xvbmcgZG9fbW9k aWZ5X2xkdChDUFVYODZTdGF0ZSAqZW52LCBpbnQgZnVuYywgYWJpX3Vsb25nIHB0ciwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYnl0ZWNvdW50KQogewogICAg IGFiaV9sb25nIHJldDsKIApAQCAtMjU0NCw3ICsyNTQ4LDcgQEAKICAgICByZXR1cm4gcmV0Owog fQogCi1hYmlfbG9uZyBkb19zZXRfdGhyZWFkX2FyZWEoQ1BVWDg2U3RhdGUgKmVudiwgYWJpX3Vs b25nIHB0cikKK3N0YXRpYyBhYmlfbG9uZyBkb19zZXRfdGhyZWFkX2FyZWEoQ1BVWDg2U3RhdGUg KmVudiwgYWJpX3Vsb25nIHB0cikKIHsKICAgICB1aW50NjRfdCAqZ2R0X3RhYmxlID0gZzJoKGVu di0+Z2R0LmJhc2UpOwogICAgIHN0cnVjdCB0YXJnZXRfbW9kaWZ5X2xkdF9sZHRfcyBsZHRfaW5m bzsKQEAgLTI2MjksNyArMjYzMyw3IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKLWFiaV9sb25nIGRv X2dldF90aHJlYWRfYXJlYShDUFVYODZTdGF0ZSAqZW52LCBhYmlfdWxvbmcgcHRyKQorc3RhdGlj IGFiaV9sb25nIGRvX2dldF90aHJlYWRfYXJlYShDUFVYODZTdGF0ZSAqZW52LCBhYmlfdWxvbmcg cHRyKQogewogICAgIHN0cnVjdCB0YXJnZXRfbW9kaWZ5X2xkdF9sZHRfcyAqdGFyZ2V0X2xkdF9p bmZvOwogICAgIHVpbnQ2NF90ICpnZHRfdGFibGUgPSBnMmgoZW52LT5nZHQuYmFzZSk7CkBAIC0y Njc3LDcgKzI2ODEsNyBAQAogfQogCiAjaWZuZGVmIFRBUkdFVF9BQkkzMgotYWJpX2xvbmcgZG9f YXJjaF9wcmN0bChDUFVYODZTdGF0ZSAqZW52LCBpbnQgY29kZSwgYWJpX3Vsb25nIGFkZHIpCitz dGF0aWMgYWJpX2xvbmcgZG9fYXJjaF9wcmN0bChDUFVYODZTdGF0ZSAqZW52LCBpbnQgY29kZSwg YWJpX3Vsb25nIGFkZHIpCiB7CiAgICAgYWJpX2xvbmcgcmV0OwogICAgIGFiaV91bG9uZyB2YWw7 CkBAIC0zMTUwLDggKzMxNTQsOCBAQAogICAgZnV0ZXhlcyBsb2NhbGx5IHdvdWxkIG1ha2UgZnV0 ZXhlcyBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSBwcm9jZXNzZXMKICAgIHRyaWNreS4gIEhvd2V2 ZXIgdGhleSdyZSBwcm9iYWJseSB1c2VsZXNzIGJlY2F1c2UgZ3Vlc3QgYXRvbWljCiAgICBvcGVy YXRpb25zIHdvbid0IHdvcmsgZWl0aGVyLiAgKi8KLWludCBkb19mdXRleCh0YXJnZXRfdWxvbmcg dWFkZHIsIGludCBvcCwgaW50IHZhbCwgdGFyZ2V0X3Vsb25nIHRpbWVvdXQsCi0gICAgICAgICAg ICAgdGFyZ2V0X3Vsb25nIHVhZGRyMiwgaW50IHZhbDMpCitzdGF0aWMgaW50IGRvX2Z1dGV4KHRh cmdldF91bG9uZyB1YWRkciwgaW50IG9wLCBpbnQgdmFsLCB0YXJnZXRfdWxvbmcgdGltZW91dCwK KyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3Vsb25nIHVhZGRyMiwgaW50IHZhbDMpCiB7CiAg ICAgc3RydWN0IHRpbWVzcGVjIHRzLCAqcHRzOwogCkluZGV4OiBxZW11L3RjZy90Y2cuYwo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBxZW11Lm9yaWcvdGNnL3RjZy5jCTIwMDgtMDgtMDggMTY6MzE6MTYuMDAwMDAw MDAwICswMDAwCisrKyBxZW11L3RjZy90Y2cuYwkyMDA4LTA4LTA4IDE2OjM2OjE0LjAwMDAwMDAw MCArMDAwMApAQCAtMTk2LDE5ICsxOTYsNiBAQAogICAgIHMtPnBvb2xfY3VycmVudCA9IE5VTEw7 CiB9CiAKLS8qIGZyZWUgYWxsIHRoZSBwb29sICovCi12b2lkIHRjZ19wb29sX2ZyZWUoVENHQ29u dGV4dCAqcykKLXsKLSAgICBUQ0dQb29sICpwLCAqcDE7Ci0KLSAgICBmb3IocCA9IHMtPnBvb2xf Zmlyc3Q7IHAgIT0gTlVMTDsgcCA9IHAxKSB7Ci0gICAgICAgIHAxID0gcC0+bmV4dDsKLSAgICAg ICAgcWVtdV9mcmVlKHApOwotICAgIH0KLSAgICBzLT5wb29sX2ZpcnN0ID0gTlVMTDsKLSAgICBz LT5wb29sX2N1ciA9IHMtPnBvb2xfZW5kID0gTlVMTDsKLX0KLQogdm9pZCB0Y2dfY29udGV4dF9p bml0KFRDR0NvbnRleHQgKnMpCiB7CiAgICAgaW50IG9wLCB0b3RhbF9hcmdzLCBuOwpAQCAtNjU1 LDcgKzY0Miw3IEBACiB9CiAjZW5kaWYKIAotdm9pZCB0Y2dfcmVnX2FsbG9jX3N0YXJ0KFRDR0Nv bnRleHQgKnMpCitzdGF0aWMgdm9pZCB0Y2dfcmVnX2FsbG9jX3N0YXJ0KFRDR0NvbnRleHQgKnMp CiB7CiAgICAgaW50IGk7CiAgICAgVENHVGVtcCAqdHM7CkBAIC0xMDI1LDcgKzEwMTIsNyBAQAog LyogTGl2ZW5lc3MgYW5hbHlzaXMgOiB1cGRhdGUgdGhlIG9wY19kZWFkX2lhcmdzIGFycmF5IHRv IHRlbGwgaWYgYQogICAgZ2l2ZW4gaW5wdXQgYXJndW1lbnRzIGlzIGRlYWQuIEluc3RydWN0aW9u cyB1cGRhdGluZyBkZWFkCiAgICB0ZW1wb3JhcmllcyBhcmUgcmVtb3ZlZC4gKi8KLXZvaWQgdGNn X2xpdmVuZXNzX2FuYWx5c2lzKFRDR0NvbnRleHQgKnMpCitzdGF0aWMgdm9pZCB0Y2dfbGl2ZW5l c3NfYW5hbHlzaXMoVENHQ29udGV4dCAqcykKIHsKICAgICBpbnQgaSwgb3BfaW5kZXgsIG9wLCBu Yl9hcmdzLCBuYl9pYXJncywgbmJfb2FyZ3MsIGFyZywgbmJfb3BzOwogICAgIFRDR0FyZyAqYXJn czsKSW5kZXg6IHFlbXUvdGNnL3g4Nl82NC90Y2ctdGFyZ2V0LmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVt dS5vcmlnL3RjZy94ODZfNjQvdGNnLXRhcmdldC5jCTIwMDgtMDgtMDggMTY6MzA6NTMuMDAwMDAw MDAwICswMDAwCisrKyBxZW11L3RjZy94ODZfNjQvdGNnLXRhcmdldC5jCTIwMDgtMDgtMDggMTY6 MzE6MzIuMDAwMDAwMDAwICswMDAwCkBAIC0xMDgsNyArMTA4LDcgQEAKIH0KIAogLyogcGFyc2Ug dGFyZ2V0IHNwZWNpZmljIGNvbnN0cmFpbnRzICovCi1pbnQgdGFyZ2V0X3BhcnNlX2NvbnN0cmFp bnQoVENHQXJnQ29uc3RyYWludCAqY3QsIGNvbnN0IGNoYXIgKipwY3Rfc3RyKQorc3RhdGljIGlu dCB0YXJnZXRfcGFyc2VfY29uc3RyYWludChUQ0dBcmdDb25zdHJhaW50ICpjdCwgY29uc3QgY2hh ciAqKnBjdF9zdHIpCiB7CiAgICAgY29uc3QgY2hhciAqY3Rfc3RyOwogCkBAIC00MDQsNyArNDA0 LDcgQEAKICAgICB9CiB9CiAKLXZvaWQgdGNnX291dF9hZGRpKFRDR0NvbnRleHQgKnMsIGludCBy ZWcsIHRjZ190YXJnZXRfbG9uZyB2YWwpCitzdGF0aWMgdm9pZCB0Y2dfb3V0X2FkZGkoVENHQ29u dGV4dCAqcywgaW50IHJlZywgdGNnX3RhcmdldF9sb25nIHZhbCkKIHsKICAgICBpZiAodmFsICE9 IDApCiAgICAgICAgIHRnZW5fYXJpdGhpNjQocywgQVJJVEhfQURELCByZWcsIHZhbCk7Cg== ------=_Part_50142_5198571.1218216141872--