From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27133 invoked by alias); 4 Feb 2013 14:09:50 -0000 Received: (qmail 27086 invoked by uid 22791); 4 Feb 2013 14:09:46 -0000 X-SWARE-Spam-Status: No, hits=-4.2 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KHOP_RCVD_TRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,RP_MATCHES_RCVD,TW_HP X-Spam-Check-By: sourceware.org Received: from mail-ee0-f44.google.com (HELO mail-ee0-f44.google.com) (74.125.83.44) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 04 Feb 2013 14:09:37 +0000 Received: by mail-ee0-f44.google.com with SMTP id l10so3414788eei.3 for ; Mon, 04 Feb 2013 06:09:35 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type:x-gm-message-state; bh=VVwBEukZJXlSg7lI400eK3d/Pn/WcoC/q4ZBMqSzu4c=; b=PVcqeGi00TfYLZoRBRYZ10OmGVfOcsf10nVU2XK6gyPWJpmjp7Ieh6rc10JiS5ZuwU +x5EN7XXbKglh6OZab6iys2zH9LCnpuNW/xvMU45iFsrRRVDq26dAb8eRVPKdM7QgwWV INEXTuNFJYPDGg0SNH6C6T8x57Izzn7vgTYEdtZc6zOamLK0XFiSn++RnxIMWC5OQaAQ 0ODR85dohNISoRA+EuaeSxr3CE01dzL3xY9lsFle7n6aT4SE7QM+9au3YfwWEhT6qZD3 rTPTsUP2SP66D30/dz3N2PL6RCu9Pe543+v8KrWQ7giMUcyfMyY9Z8iJpZ3Ec85vcoJg egdA== MIME-Version: 1.0 X-Received: by 10.14.213.7 with SMTP id z7mr72533817eeo.2.1359986975510; Mon, 04 Feb 2013 06:09:35 -0800 (PST) Received: by 10.14.68.131 with HTTP; Mon, 4 Feb 2013 06:09:35 -0800 (PST) Date: Mon, 04 Feb 2013 14:09:00 -0000 Message-ID: Subject: [RFC - Python Scripting] New method gdb.Architecture.disassemble From: Siva Chandra To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=047d7b603bb09310b304d4e6a4f9 X-Gm-Message-State: ALoCoQnBPw9o9ynqlDklR1uwHxknvulspykckPihXMhNHZW/5tEF7ovUEBlbfOmmTBEIj8D/Wu3eLvyOOF0xvOoOvme1pe8G3Xb6Gc4GsDHFk9Bnktbh+1U43XAoPdnstMdbChYsVsIA/NooxCC25UuUZ8oJXKJnPJ/BmBrzhNiWdqnxGhFVGn7Htb3wBPcoWMwWDZrm66UvhohVHZu9iYQJ/CV0fKQxEA== X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2013-02/txt/msg00072.txt.bz2 --047d7b603bb09310b304d4e6a4f9 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 794 The attached patch adds a new method 'disassemble' to the class gdb.Architecture. I have not yet added docs and tests, but will do so after I get feedback that adding such a method is OK. 2013-02-04 Siva Chandra Reddy Add a new method 'disassemble' to gdb.Architecture class. * Makefile.in: Add entries for the new file python/py-out.c * python/py-arch.c (archpy_disassmble): Implementation of the new method gdb.Architecture.disassemble. (arch_object_methods): Add entry for the new method. * python/py-out.c: Implementation of a Python ui_out. * python/python-internal.h: Add declarations for new utility functions. * python/python.c (_initialize_python): Initialize Python ui_out. --047d7b603bb09310b304d4e6a4f9 Content-Type: text/plain; charset=US-ASCII; name="arch_disassemble_patch_v1.txt" Content-Disposition: attachment; filename="arch_disassemble_patch_v1.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hcroy7es0 Content-length: 19037 ZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5p bgppbmRleCA2OGQ1NDVlLi42YmU2NGNmIDEwMDY0NAotLS0gYS9nZGIvTWFr ZWZpbGUuaW4KKysrIGIvZ2RiL01ha2VmaWxlLmluCkBAIC0yOTEsNiArMjkx LDcgQEAgU1VCRElSX1BZVEhPTl9PQlMgPSBcCiAJcHktbGF6eS1zdHJpbmcu byBcCiAJcHktbmV3b2JqZmlsZWV2ZW50Lm8gXAogCXB5LW9iamZpbGUubyBc CisJcHktb3V0Lm8gXAogCXB5LXBhcmFtLm8gXAogCXB5LXByZXR0eXByaW50 Lm8gXAogCXB5LXByb2dzcGFjZS5vIFwKQEAgLTMyNSw2ICszMjYsNyBAQCBT VUJESVJfUFlUSE9OX1NSQ1MgPSBcCiAJcHl0aG9uL3B5LWxhenktc3RyaW5n LmMgXAogCXB5dGhvbi9weS1uZXdvYmpmaWxlZXZlbnQuYyBcCiAJcHl0aG9u L3B5LW9iamZpbGUuYyBcCisJcHl0aG9uL3B5LW91dC5jIFwKIAlweXRob24v cHktcGFyYW0uYyBcCiAJcHl0aG9uL3B5LXByZXR0eXByaW50LmMgXAogCXB5 dGhvbi9weS1wcm9nc3BhY2UuYyBcCkBAIC0yMTI5LDYgKzIxMzEsMTAgQEAg cHktb2JqZmlsZS5vOiAkKHNyY2RpcikvcHl0aG9uL3B5LW9iamZpbGUuYwog CSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9u L3B5LW9iamZpbGUuYwogCSQoUE9TVENPTVBJTEUpCiAKK3B5LW91dC5vOiAk KHNyY2RpcikvcHl0aG9uL3B5LW91dC5jCisJJChDT01QSUxFKSAkKFBZVEhP Tl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHktb3V0LmMKKwkkKFBPU1RD T01QSUxFKQorCiBweS1wYXJhbS5vOiAkKHNyY2RpcikvcHl0aG9uL3B5LXBh cmFtLmMKIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIp L3B5dGhvbi9weS1wYXJhbS5jCiAJJChQT1NUQ09NUElMRSkKZGlmZiAtLWdp dCBhL2dkYi9weXRob24vcHktYXJjaC5jIGIvZ2RiL3B5dGhvbi9weS1hcmNo LmMKaW5kZXggZWRkNTA4Zi4uYjZmNGY1YSAxMDA2NDQKLS0tIGEvZ2RiL3B5 dGhvbi9weS1hcmNoLmMKKysrIGIvZ2RiL3B5dGhvbi9weS1hcmNoLmMKQEAg LTE5LDYgKzE5LDcgQEAKIAogI2luY2x1ZGUgImRlZnMuaCIKICNpbmNsdWRl ICJnZGJhcmNoLmgiCisjaW5jbHVkZSAiZGlzYXNtLmgiCiAjaW5jbHVkZSAi YXJjaC11dGlscy5oIgogI2luY2x1ZGUgInB5dGhvbi1pbnRlcm5hbC5oIgog CkBAIC04Niw2ICs4Nyw0NCBAQCBhcmNocHlfbmFtZSAoUHlPYmplY3QgKnNl bGYsIFB5T2JqZWN0ICphcmdzKQogICByZXR1cm4gcHlfbmFtZTsKIH0KIAor LyogSW1wbGVtZW50YXRpb24gb2YgQXJjaGl0ZWN0dXJlLmRpc2Fzc2VtYmxl IChsb3csIGhpZ2gsIFtvcGNvZGVzXSkgLT4gTGlzdC4KKyAgIFJldHVybnMg YSBsaXN0IG9mIGluc3RydWN0aW9ucywgZWFjaCBvZiB3aGljaCBpcyBhIGRp Y3Rpb25hcnkuICAqLworCitzdGF0aWMgUHlPYmplY3QgKgorYXJjaHB5X2Rp c2Fzc2VtYmxlIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7 CisgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gYXJjaF9vYmplY3RfdG9f Z2RiYXJjaCAoc2VsZik7CisgIENPUkVfQUREUiBsb3csIGhpZ2g7CisgIGlu dCBvcGNvZGVzID0gMCwgZmxhZ3MgPSAwOworICBQeU9iamVjdCAqcmVzdWx0 LCAqdGVtcDsKKyAgdm9sYXRpbGUgc3RydWN0IGdkYl9leGNlcHRpb24gZXhj ZXB0OworCisgIGlmICghUHlBcmdfUGFyc2VUdXBsZSAoYXJncywgIktLfGki LCAmbG93LCAmaGlnaCwgJm9wY29kZXMpKQorICAgIHJldHVybiBOVUxMOwor CisgIGlmIChvcGNvZGVzKQorICAgIGZsYWdzID0gRElTQVNTRU1CTFlfUkFX X0lOU047CisKKyAgVFJZX0NBVENIIChleGNlcHQsIFJFVFVSTl9NQVNLX0FM TCkKKyAgICB7CisgICAgICBnZGJfZGlzYXNzZW1ibHkgKGdkYmFyY2gsIHB5 X291dCwgTlVMTCwgZmxhZ3MsIC0xLCBsb3csIGhpZ2gpOworICAgIH0KKyAg R0RCX1BZX0hBTkRMRV9FWENFUFRJT04gKGV4Y2VwdCk7CisKKyAgdGVtcCA9 IGZldGNoX2FuZF9yZXNldF9weV9vdXRfb2JqZWN0IChweV9vdXQpOworICBp ZiAoISAoUHlMaXN0X0NoZWNrICh0ZW1wKSAmJiBQeUxpc3RfU2l6ZSAodGVt cCkgPiAwKSkKKyAgICByZXR1cm4gTlVMTDsKKworICAvKiBnZGJfZGlzYXNz ZW1ibHkgcHV0cyBhIGxpc3Qgb2YgbGlzdHMgaW4gcHlfb3V0IHdpdGggdGhl IGhpZ2hlciBsZXZlbCBsaXN0CisgICAgIGNvbnRhaW5pbmcgYSBzaW5nbGUg aXRlbSB3aGljaCBpcyBpdHNlbGYgYSBsaXN0IG9mIGluc3RydWN0aW9ucy4g IEhlbmNlLAorICAgICByZXR1cm4gdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhl IGhpZ2hlciBsZXZlbCBsaXN0LiAgKi8KKyAgcmVzdWx0ID0gUHlMaXN0X0dl dEl0ZW0gKHRlbXAsIDApOworICBQeV9YSU5DUkVGIChyZXN1bHQpOworICBQ eV9YREVDUkVGICh0ZW1wKTsKKworICByZXR1cm4gcmVzdWx0OworfQorCiAv KiBJbml0aWFsaXplcyB0aGUgQXJjaGl0ZWN0dXJlIGNsYXNzIGluIHRoZSBn ZGIgbW9kdWxlLiAgKi8KIAogdm9pZApAQCAtMTA1LDYgKzE0NCw5IEBAIHN0 YXRpYyBQeU1ldGhvZERlZiBhcmNoX29iamVjdF9tZXRob2RzIFtdID0gewog ICB7ICJuYW1lIiwgYXJjaHB5X25hbWUsIE1FVEhfTk9BUkdTLAogICAgICJu YW1lICgpIC0+IFN0cmluZy5cblwKIFJldHVybiB0aGUgbmFtZSBvZiB0aGUg YXJjaGl0ZWN0dXJlIGFzIGEgc3RyaW5nIHZhbHVlLiIgfSwKKyAgeyAiZGlz YXNzZW1ibGUiLCBhcmNocHlfZGlzYXNzZW1ibGUsIE1FVEhfVkFSQVJHUywK KyAgICAibmFtZSAobG93LCBoaWdoLCBbb3Bjb2Rlc10pIC0+IExpc3QuXG5c CitSZXR1cm4gdGhlIGxpc3Qgb2YgaW5zdHJ1Y3Rpb25zIGluIHRoZSBhZGRy ZXNzIHJhbmdlIGZyb20gTE9XIHRvIEhJR0guIiB9LAogICB7TlVMTH0gIC8q IFNlbnRpbmVsICovCiB9OwogCmRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5 LW91dC5jIGIvZ2RiL3B5dGhvbi9weS1vdXQuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5kMjc4YmMyCi0tLSAvZGV2L251bGwKKysr IGIvZ2RiL3B5dGhvbi9weS1vdXQuYwpAQCAtMCwwICsxLDI1OSBAQAorLyog UHl0aG9uIHVpX291dCBpbXBsZW1lbnRhdGlvbi4KKworICAgQ29weXJpZ2h0 IChDKSAyMDEzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisg ICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCisKKyAgIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisK KyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4gICovCisKKyNpbmNsdWRlICJkZWZzLmgiCisjaW5jbHVkZSAi dWktb3V0LmgiCisjaW5jbHVkZSAicHl0aG9uLWludGVybmFsLmgiCisKK3N0 cnVjdCB1aV9vdXQgKnB5X291dDsKKworc3RydWN0IHJvd19kYXRhCit7Cisg IC8qIERBVEEgaXMgZWl0aGVyIGEgbGlzdCBvZiByb3dzLCBvciBqdXN0IGEg ZGljdC4gICovCisgIFB5T2JqZWN0ICpkYXRhOworCisgIC8qIFRoZSBlbmNs b3Npbmcgcm93IGZvciB0aGUgYWJvdmUgREFUQS4gICovCisgIHN0cnVjdCBy b3dfZGF0YSAqcGFyZW50X3JvdzsKK307CisKKy8qIFRoaXMgZGF0YSBzdHJ1 Y3R1cmUgY2FwdHVyZXMgdGhlIFB5dGhvbiB2ZXJzaW9uIG9mIHVpX291dC4g IFRoZSBQeXRob24KKyAgIHZlcnNpb24gaXMgbm90IHVzZWQgdG8gZGlzcGxh eSBvdXRwdXQgdG8gYSB1c2VyLCBidXQgdG8gY2FwdHVyZSB0aGUgcmVzdWx0 cworICAgZnJvbSBHREIncyBpbnRlcm5hbHMgaW4gdG8gYSBQeXRob24gZGF0 YSBzdHJ1Y3R1cmUuICBIZW5jZSwgaXQgZG9lcyBub3QgaGF2ZQorICAgYW55 IHJlcHJlc2VudGF0aW9uIGZvciB0YWJsZSBoZWFkZXJzLiAgSG93ZXZlciwg aXQgY2FuIGJlIHZpZXdlZCBhcyBhCisgICByZWN1cnNpdmUgdGFibGUgc3Ry dWN0dXJlIHdoZXJpbiB0aGUgaGlnaGVzdCBsZXZlbCBpcyBhIGxpc3Qgb2Yg cm93cy4gIEFsbAorICAgcm93cyBpbiB0aGlzIGxpc3QgY2FuIGVpdGhlciBi ZSBhIGxpc3QgdGhlbXNlbHZlcywgb3IgYWxsIG9mIHRoZW0gY2FuIGJlCisg ICBkaWN0cyBob2xkaW5nIHRoZSB0YWJsZSdzIGZpZWxkcy4gIElmIHRoZXkg d2VyZSBsaXN0cywgdGhlbiB0aGV5IGZvbGxvdyB0aGUKKyAgIHNhbWUgcmVj dXJyc2l2ZSBzdHJ1Y3R1cmUgYXMgdGhlIGhpZ2hlciBsZXZlbHMuCisKKyAg IEV4YW1wbGU6CisKKyAgICAgICBbICMgSGlnaGVzdCBsZXZlbCBsaXN0IHdo aWNoIGhhcyB0d28gbGlzdHMgZm9yIHJvd3MKKyAgICAgICAgIFsgIyBJbm5l ciBsZXZlbCByb3cgd2hpY2ggaXMgYSBsaXN0IG9mIGxpc3RzCisgICAgICAg ICAgIFsgIyBJbm5lciBsZXZlbCByb3cgd2hpY2ggaXMgYSBsaXN0IG9mIGRp Y3RzCisgICAgICAgICAgICAgeydhJzogMSwgJ2InOiAyfSwgIyBMZWFmIHJv dyB3aGljaCBpcyBhIGRpY3QKKyAgICAgICAgICAgICB7J2EnOiAzLCAnYic6 IDR9LCAjIExlYWYgcm93IHdoaWNoIGlzIGEgZGljdAorICAgICAgICAgICBd LAorCisgICAgICAgICAgIFsgIyBJbm5lciBsZXZlbCByb3cgd2hpY2ggaXMg YSBsaXN0IG9mIGRpY3RzCisgICAgICAgICAgICAgeyd4JzogNSwgJ3knOiA2 fSwgIyBMZWFmIHJvdyB3aGljaCBpcyBhIGRpY3QKKyAgICAgICAgICAgICB7 J3gnOiA3LCAneSc6IDh9LCAjIExlYWYgcm93IHdoaWNoIGlzIGEgZGljdAor ICAgICAgICAgICBdLAorICAgICAgICAgXSwKKworICAgICAgICAgWyAjIElu bmVyIGxldmVsIHJvdyB3aGljaCBpcyBsaXN0IG9mIGRpY3RzCisgICAgICAg ICAgIHsncCc6IDEsICdxJzogMn0sICMgTGVhZiByb3cgd2hpY2ggaXMgYSBk aWN0CisgICAgICAgICAgIHsncCc6IDMsICdxJzogNH0sICMgTGVhZiByb3cg d2hpY2ggaXMgYSBkaWN0CisgICAgICAgICBdLAorICAgICAgIF0KKyovCisK K3N0cnVjdCBweV9vdXRfZGF0YQoreworICAvKiBUaGUgaGlnaGVzdCBsZXZl bCBsaXN0IG9mIHJvd3MuICAqLworICBzdHJ1Y3Qgcm93X2RhdGEgKnRhYmxl OworCisgIC8qIFRoZSBjdXJyZW50IHJvdyB0aGF0IGlzIGJlaW5nIGFkZGVk IHRvIHRoZSB0YWJsZS4gICovCisgIHN0cnVjdCByb3dfZGF0YSAqY3VycmVu dF9yb3c7Cit9OworCitzdGF0aWMgc3RydWN0IHJvd19kYXRhICoKK25ld19y b3cgKHN0cnVjdCByb3dfZGF0YSAqcGFyZW50KQoreworICBzdHJ1Y3Qgcm93 X2RhdGEgKnJvdzsKKworICByb3cgPSAoc3RydWN0IHJvd19kYXRhICopIHht YWxsb2MgKHNpemVvZiAoc3RydWN0IHJvd19kYXRhKSk7CisgIHJvdy0+ZGF0 YSA9IE5VTEw7CisgIHJvdy0+cGFyZW50X3JvdyA9IHBhcmVudDsKKworICBy ZXR1cm4gcm93OworfQorCitQeU9iamVjdCAqCitmZXRjaF9hbmRfcmVzZXRf cHlfb3V0X29iamVjdCAoc3RydWN0IHVpX291dCAqdWlfb3V0KQoreworICBQ eU9iamVjdCAqdGVtcDsKKyAgc3RydWN0IHB5X291dF9kYXRhICpweV9vdXRf ZGF0YSA9IHVpX291dF9kYXRhICh1aV9vdXQpOworCisgIC8qIEVuc3VyZSB0 aGF0IHRoZSBweV9vdXQgb2JqZWN0IGlzIGNvbXBsZXRlLiAgKi8KKyAgaWYg KHB5X291dF9kYXRhLT5jdXJyZW50X3JvdyAhPSBweV9vdXRfZGF0YS0+dGFi bGUpCisgICAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywK KyAgICAgICAgICAgICAgICAgICAgXygiVHJ5aW5nIHRvIGZldGNoIGFuIGlu Y29tcGxldGUgUHl0aG9uIHVpX291dCBvYmplY3QiKSk7CisKKyAgdGVtcCA9 IHB5X291dF9kYXRhLT50YWJsZS0+ZGF0YTsKKyAgcHlfb3V0X2RhdGEtPnRh YmxlLT5kYXRhID0gUHlMaXN0X05ldyAoMCk7CisKKyAgcmV0dXJuIHRlbXA7 Cit9CisKK3N0YXRpYyB2b2lkCitweV9vdXRfcm93X2JlZ2luIChzdHJ1Y3Qg dWlfb3V0ICp1aV9vdXQsIGVudW0gdWlfb3V0X3R5cGUgdHlwZSwgaW50IGxl dmVsLAorICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaWQpCit7Cisg IHN0cnVjdCBweV9vdXRfZGF0YSAqcHlfb3V0X2RhdGEgPSB1aV9vdXRfZGF0 YSAodWlfb3V0KTsKKworICBpZiAocHlfb3V0X2RhdGEtPmN1cnJlbnRfcm93 KQorICAgIHsKKyAgICAgIGlmIChweV9vdXRfZGF0YS0+Y3VycmVudF9yb3ct PmRhdGEpCisgICAgICAgIHsKKyAgICAgICAgICBpZiAoUHlEaWN0X0NoZWNr IChweV9vdXRfZGF0YS0+Y3VycmVudF9yb3ctPmRhdGEpKQorICAgICAgICAg ICAgLyogSWYgdGhlIHJvdyBoYXMgZGF0YSwgY2hlY2sgdGhhdCBpdCBpcyBu b3QgYSBkaWN0IGZpcnN0LiAgKi8KKyAgICAgICAgICAgIGludGVybmFsX2Vy cm9yIChfX0ZJTEVfXywgX19MSU5FX18sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXygiVHJ5aW5nIHRvIGFkZCBhIHJvdyB0byBhIHJvdyB3aGlj aCBoYXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpZWxk cy4iKSk7CisgICAgICAgICAgZWxzZSBpZiAoUHlMaXN0X0NoZWNrIChweV9v dXRfZGF0YS0+Y3VycmVudF9yb3ctPmRhdGEpKQorICAgICAgICAgICAgewor ICAgICAgICAgICAgICAvKiBJZiB0aGUgcm93IGlzIGFscmVhZHkgYSBsaXN0 LCBhZGQgYSBuZXcgcm93LiAgKi8KKyAgICAgICAgICAgICAgc3RydWN0IHJv d19kYXRhICpuZXdfcm93X2RhdGE7CisKKyAgICAgICAgICAgICAgbmV3X3Jv d19kYXRhID0gbmV3X3JvdyAocHlfb3V0X2RhdGEtPmN1cnJlbnRfcm93KTsK KyAgICAgICAgICAgICAgcHlfb3V0X2RhdGEtPmN1cnJlbnRfcm93ID0gbmV3 X3Jvd19kYXRhOworICAgICAgICAgICAgfQorICAgICAgICAgIGVsc2UKKyAg ICAgICAgICAgIC8qIElmIGl0IGlzIG5laXRoZXIgYSBsaXN0IG9yIGEgZGlj dCwgdGhlbiBzb21ldGhpbmcgaGFzIGdvbmUgd3JvbmcKKyAgICAgICAgICAg ICAgIHNvbWV3aGVyZS4gICovCisgICAgICAgICAgICBpbnRlcm5hbF9lcnJv ciAoX19GSUxFX18sIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF8oIlVuZXhwZWN0ZWQgaW50ZXJuYWwgc3RhdGUgaW4gY3JlYXRp bmcgUHl0aG9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1 aV9vdXQgb2JqZWN0LiIpKTsKKyAgICAgICAgfQorICAgICAgZWxzZQorICAg ICAgICB7CisgICAgICAgICAgLyogTWFrZSB0aGUgY3VycmVudCByb3cgYSBs aXN0IGFuZCBhZGQgYSBuZXcgcm93LiAgKi8KKyAgICAgICAgICBzdHJ1Y3Qg cm93X2RhdGEgKm5ld19yb3dfZGF0YTsKKworICAgICAgICAgIHB5X291dF9k YXRhLT5jdXJyZW50X3Jvdy0+ZGF0YSA9IFB5TGlzdF9OZXcgKDApOworICAg ICAgICAgIG5ld19yb3dfZGF0YSA9IG5ld19yb3cgKHB5X291dF9kYXRhLT5j dXJyZW50X3Jvdyk7CisgICAgICAgICAgcHlfb3V0X2RhdGEtPmN1cnJlbnRf cm93ID0gbmV3X3Jvd19kYXRhOyAKKyAgICAgICAgfQorICAgIH0KKyAgZWxz ZQorICAgIHsKKyAgICAgIC8qIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4g ICovCisgICAgICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9f LAorICAgICAgICAgICAgICAgICAgICAgIF8oIlVuZXhwZWN0ZWQgaW50ZXJu YWwgc3RhdGUgaW4gY3JlYXRpbmcgUHl0aG9uIHVpX291dCAiCisgICAgICAg ICAgICAgICAgICAgICAgICAib2JqZWN0LiIpKTsKKyAgICB9Cit9CisKK3N0 YXRpYyB2b2lkCitweV9vdXRfcm93X2VuZCAoc3RydWN0IHVpX291dCAqdWlf b3V0LCBlbnVtIHVpX291dF90eXBlIHR5cGUsIGludCBsZXZlbCkKK3sKKyAg c3RydWN0IHB5X291dF9kYXRhICpweV9vdXRfZGF0YSA9IHVpX291dF9kYXRh ICh1aV9vdXQpOworICBzdHJ1Y3Qgcm93X2RhdGEgKnRlbXA7CisKKyAgLyog SWYgbm90aGluZyB3YXMgYWRkZWQgdG8gY3VycmVudCByb3csIHRoZW4gbWFr ZSBpdCBQeV9Ob25lLiAgKi8KKyAgaWYgKHB5X291dF9kYXRhLT5jdXJyZW50 X3Jvdy0+ZGF0YSA9PSBOVUxMKQorICAgIHsKKyAgICAgIFB5X0lOQ1JFRiAo UHlfTm9uZSk7CisgICAgICBweV9vdXRfZGF0YS0+Y3VycmVudF9yb3ctPmRh dGEgPSBQeV9Ob25lOworICAgIH0KKworICAvKiBDb21taXQgdGhlIHJvdyB0 byB0aGUgcGFyZW50IGxpc3QuICAqLworICBQeUxpc3RfQXBwZW5kIChweV9v dXRfZGF0YS0+Y3VycmVudF9yb3ctPnBhcmVudF9yb3ctPmRhdGEsCisgICAg ICAgICAgICAgICAgIHB5X291dF9kYXRhLT5jdXJyZW50X3Jvdy0+ZGF0YSk7 CisKKyAgLyogTW92ZSB1cCBhIGxldmVsIGJ5IG1ha2luZyB0aGUgcGFyZW50 IHJvdyBhcyB0aGUgY3VycmVudCByb3cgYW5kIGZyZWUgdGhlCisgICAgIHJv d19kYXRhIG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIGN1cnJlbnRfcm93LiAg Ki8KKyAgdGVtcCA9IHB5X291dF9kYXRhLT5jdXJyZW50X3JvdzsKKyAgcHlf b3V0X2RhdGEtPmN1cnJlbnRfcm93ID0gcHlfb3V0X2RhdGEtPmN1cnJlbnRf cm93LT5wYXJlbnRfcm93OworICB4ZnJlZSAodGVtcCk7Cit9CisKKyNkZWZp bmUgQ0hFQ0tfQU5EX0lOSVRfRklFTERfUk9XX0RBVEEoZGF0YSkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZG8geyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgaWYgKCEoZGF0YSkpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgICAgKGRhdGEpID0gUHlEaWN0X05ldyAo KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg ICBpZiAoIVB5RGljdF9DaGVjayAoKGRhdGEpKSkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBpbnRl cm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF8oIkFkZGluZyBmaWVsZHMgdG8gYSByb3cgd2hpY2ggaXMgbm90IGEg ZmllbGQgIiAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy b3cuIikpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg IH0gd2hpbGUgKDApCisKK3N0YXRpYyB2b2lkCitweV9vdXRfZmllbGRfaW50 IChzdHJ1Y3QgdWlfb3V0ICogdWlfb3V0LCBpbnQgZmxkbm8sIGludCB3aWR0 aCwKKyAgICAgICAgICAgICAgICAgIGVudW0gdWlfYWxpZ24gYWxpZ24sIGNv bnN0IGNoYXIgKmZsZG5hbWUsIGludCB2YWx1ZSkKK3sKKyAgc3RydWN0IHB5 X291dF9kYXRhICpweV9vdXRfZGF0YSA9IHVpX291dF9kYXRhICh1aV9vdXQp OworCisgIENIRUNLX0FORF9JTklUX0ZJRUxEX1JPV19EQVRBIChweV9vdXRf ZGF0YS0+Y3VycmVudF9yb3ctPmRhdGEpOworCisgIFB5RGljdF9TZXRJdGVt U3RyaW5nIChweV9vdXRfZGF0YS0+Y3VycmVudF9yb3ctPmRhdGEsIGZsZG5h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICBQeUludF9Gcm9tTG9uZyAo dmFsdWUpKTsKK30KKworc3RhdGljIHZvaWQKK3B5X291dF9maWVsZF9za2lw IChzdHJ1Y3QgdWlfb3V0ICp1aV9vdXQsIGludCBmbGRubywgaW50IHdpZHRo LAorICAgICAgICAgICAgICAgICAgIGVudW0gdWlfYWxpZ24gYWxpZ24sIGNv bnN0IGNoYXIgKmZsZG5hbWUpCit7CisgIHN0cnVjdCBweV9vdXRfZGF0YSAq cHlfb3V0X2RhdGEgPSB1aV9vdXRfZGF0YSAodWlfb3V0KTsKKworICBDSEVD S19BTkRfSU5JVF9GSUVMRF9ST1dfREFUQSAocHlfb3V0X2RhdGEtPmN1cnJl bnRfcm93LT5kYXRhKTsKKworICBQeV9JTkNSRUYgKFB5X05vbmUpOworICBQ eURpY3RfU2V0SXRlbVN0cmluZyAocHlfb3V0X2RhdGEtPmN1cnJlbnRfcm93 LT5kYXRhLCBmbGRuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgUHlf Tm9uZSk7Cit9CisKK3N0YXRpYyB2b2lkCitweV9vdXRfZmllbGRfc3RyaW5n IChzdHJ1Y3QgdWlfb3V0ICogdWlfb3V0LCBpbnQgZmxkbm8sIGludCB3aWR0 aCwKKyAgICAgICAgICAgICAgICAgICAgIGVudW0gdWlfYWxpZ24gYWxpZ24s IGNvbnN0IGNoYXIgKmZsZG5hbWUsIGNvbnN0IGNoYXIgKnN0cikKK3sKKyAg c3RydWN0IHB5X291dF9kYXRhICpweV9vdXRfZGF0YSA9IHVpX291dF9kYXRh ICh1aV9vdXQpOworCisgIENIRUNLX0FORF9JTklUX0ZJRUxEX1JPV19EQVRB IChweV9vdXRfZGF0YS0+Y3VycmVudF9yb3ctPmRhdGEpOworCisgIFB5RGlj dF9TZXRJdGVtU3RyaW5nIChweV9vdXRfZGF0YS0+Y3VycmVudF9yb3ctPmRh dGEsIGZsZG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBQeVN0cmlu Z19Gcm9tU3RyaW5nIChzdHIpKTsKK30KKworc3RhdGljIHN0cnVjdCB1aV9v dXRfaW1wbCBweV91aV9vdXRfaW1wbCA9IAoreworICAwLCAgICAgICAgICAg ICAgICAgICAgICAgIC8qIHRhYmxlX2JlZ2luICAqLworICAwLCAgICAgICAg ICAgICAgICAgICAgICAgIC8qIHRhYmxlX2JvZHkgICovCisgIDAsICAgICAg ICAgICAgICAgICAgICAgICAgLyogdGFibGVfZW5kICAqLworICAwLCAgICAg ICAgICAgICAgICAgICAgICAgIC8qIHRhYmxlX2hlYWRlciAgKi8KKyAgcHlf b3V0X3Jvd19iZWdpbiwgICAgICAgICAvKiBiZWdpbiAgKi8KKyAgcHlfb3V0 X3Jvd19lbmQsICAgICAgICAgICAvKiBlbmQgICovCisgIHB5X291dF9maWVs ZF9pbnQsICAgICAgICAgLyogZmllbGRfaW50ICAqLworICBweV9vdXRfZmll bGRfc2tpcCwgICAgICAgIC8qIGZpZWxkX3NraXAgICovCisgIHB5X291dF9m aWVsZF9zdHJpbmcsICAgICAgLyogZmllbGRfc3RyaW5nICAqLworICAwLCAg ICAgICAgICAgICAgICAgICAgICAgIC8qIGZpZWxkX2ZtdCAgKi8KKyAgMCwg ICAgICAgICAgICAgICAgICAgICAgICAvKiBzcGFjZSAgKi8KKyAgMCwgICAg ICAgICAgICAgICAgICAgICAgICAvKiB0ZXh0ICAqLworICAwLCAgICAgICAg ICAgICAgICAgICAgICAgIC8qIG1lc3NhZ2UgICovCisgIDAsICAgICAgICAg ICAgICAgICAgICAgICAgLyogd3JhcF9oaW50ICAqLworICAwLCAgICAgICAg ICAgICAgICAgICAgICAgIC8qIGZsdXNoICAqLworICAwLCAgICAgICAgICAg ICAgICAgICAgICAgIC8qIHJlZGlyZWN0ICAqLworICAwICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIGlzX21pX2xpa2VfcCAgKi8KK307CisKK3ZvaWQK K2dkYnB5X2luaXRpYWxpemVfcHlfb3V0ICh2b2lkKQoreworICBzdHJ1Y3Qg cHlfb3V0X2RhdGEgKnB5X291dF9kYXRhOworCisgIHB5X291dF9kYXRhID0g KHN0cnVjdCBweV9vdXRfZGF0YSAqKSB4bWFsbG9jIChzaXplb2YgKHN0cnVj dCBweV9vdXRfZGF0YSkpOworICBweV9vdXRfZGF0YS0+dGFibGUgPSBuZXdf cm93IChOVUxMKTsKKyAgcHlfb3V0X2RhdGEtPnRhYmxlLT5kYXRhID0gUHlM aXN0X05ldyAoMCk7CisgIHB5X291dF9kYXRhLT5jdXJyZW50X3JvdyA9IHB5 X291dF9kYXRhLT50YWJsZTsKKworICBweV9vdXQgPSB1aV9vdXRfbmV3ICgm cHlfdWlfb3V0X2ltcGwsIHB5X291dF9kYXRhLCAwKTsKK30KZGlmZiAtLWdp dCBhL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmggYi9nZGIvcHl0aG9u L3B5dGhvbi1pbnRlcm5hbC5oCmluZGV4IDhkZmYxZDcuLmQ4NTJkMDMgMTAw NjQ0Ci0tLSBhL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKKysrIGIv Z2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaApAQCAtMTQzLDYgKzE0Myw3 IEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZuOwogc3RydWN0IHByb2dyYW1fc3Bh Y2U7CiBzdHJ1Y3QgYnBzdGF0czsKIHN0cnVjdCBpbmZlcmlvcjsKK3N0cnVj dCB1aV9vdXQ7CiAKIGV4dGVybiBQeU9iamVjdCAqZ2RiX21vZHVsZTsKIGV4 dGVybiBQeU9iamVjdCAqZ2RiX3B5dGhvbl9tb2R1bGU7CkBAIC0yNjcsNiAr MjY4LDggQEAgc3RydWN0IHN5bXRhYl9hbmRfbGluZSAqc2FsX29iamVjdF90 b19zeW10YWJfYW5kX2xpbmUgKFB5T2JqZWN0ICpvYmopOwogc3RydWN0IGZy YW1lX2luZm8gKmZyYW1lX29iamVjdF90b19mcmFtZV9pbmZvIChQeU9iamVj dCAqZnJhbWVfb2JqKTsKIHN0cnVjdCBnZGJhcmNoICphcmNoX29iamVjdF90 b19nZGJhcmNoIChQeU9iamVjdCAqb2JqKTsKIAorUHlPYmplY3QgKmZldGNo X2FuZF9yZXNldF9weV9vdXRfb2JqZWN0IChzdHJ1Y3QgdWlfb3V0ICopOwor CiB2b2lkIGdkYnB5X2luaXRpYWxpemVfZ2RiX3JlYWRsaW5lICh2b2lkKTsK IHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9hdXRvX2xvYWQgKHZvaWQpOwogdm9p ZCBnZGJweV9pbml0aWFsaXplX3ZhbHVlcyAodm9pZCk7CkBAIC0yOTcsNiAr MzAwLDcgQEAgdm9pZCBnZGJweV9pbml0aWFsaXplX2V4aXRlZF9ldmVudCAo dm9pZCk7CiB2b2lkIGdkYnB5X2luaXRpYWxpemVfdGhyZWFkX2V2ZW50ICh2 b2lkKTsKIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9uZXdfb2JqZmlsZV9ldmVu dCAodm9pZCk7CiB2b2lkIGdkYnB5X2luaXRpYWxpemVfYXJjaCAodm9pZCk7 Cit2b2lkIGdkYnB5X2luaXRpYWxpemVfcHlfb3V0ICh2b2lkKTsKIAogc3Ry dWN0IGNsZWFudXAgKm1ha2VfY2xlYW51cF9weV9kZWNyZWYgKFB5T2JqZWN0 ICpweSk7CiAKQEAgLTMwNSw2ICszMDksNyBAQCBzdHJ1Y3QgY2xlYW51cCAq ZW5zdXJlX3B5dGhvbl9lbnYgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAog CiBleHRlcm4gc3RydWN0IGdkYmFyY2ggKnB5dGhvbl9nZGJhcmNoOwogZXh0 ZXJuIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpweXRob25fbGFuZ3Vh Z2U7CitleHRlcm4gc3RydWN0IHVpX291dCAqcHlfb3V0OwogCiAvKiBVc2Ug dGhpcyBhZnRlciBhIFRSWV9FWENFUFQgdG8gdGhyb3cgdGhlIGFwcHJvcHJp YXRlIFB5dGhvbgogICAgZXhjZXB0aW9uLiAgKi8KZGlmZiAtLWdpdCBhL2dk Yi9weXRob24vcHl0aG9uLmMgYi9nZGIvcHl0aG9uL3B5dGhvbi5jCmluZGV4 IDUzZGRlZTkuLjNhYjRiN2MgMTAwNjQ0Ci0tLSBhL2dkYi9weXRob24vcHl0 aG9uLmMKKysrIGIvZ2RiL3B5dGhvbi9weXRob24uYwpAQCAtMTYyMSw2ICsx NjIxLDcgQEAgbWVzc2FnZSA9PSBhbiBlcnJvciBtZXNzYWdlIHdpdGhvdXQg YSBzdGFjayB3aWxsIGJlIHByaW50ZWQuIiksCiAgIGdkYnB5X2luaXRpYWxp emVfdGhyZWFkX2V2ZW50ICgpOwogICBnZGJweV9pbml0aWFsaXplX25ld19v YmpmaWxlX2V2ZW50ICgpIDsKICAgZ2RicHlfaW5pdGlhbGl6ZV9hcmNoICgp OworICBnZGJweV9pbml0aWFsaXplX3B5X291dCAoKTsKIAogICBvYnNlcnZl cl9hdHRhY2hfYmVmb3JlX3Byb21wdCAoYmVmb3JlX3Byb21wdF9ob29rKTsK IAo= --047d7b603bb09310b304d4e6a4f9--