From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23008 invoked by alias); 6 Feb 2013 01:53:18 -0000 Received: (qmail 22986 invoked by uid 22791); 6 Feb 2013 01:53:16 -0000 X-SWARE-Spam-Status: No, hits=-5.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,RP_MATCHES_RCVD,TW_HP X-Spam-Check-By: sourceware.org Received: from mail-ee0-f45.google.com (HELO mail-ee0-f45.google.com) (74.125.83.45) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 06 Feb 2013 01:53:03 +0000 Received: by mail-ee0-f45.google.com with SMTP id b57so454354eek.4 for ; Tue, 05 Feb 2013 17:53:01 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:x-gm-message-state; bh=TgSuymFPEHbhYCi3q94oKwq0YX2OOvkxjh8rh2R6Tw4=; b=KY5kRunqatXUW1lixePz1uNOA2Lf0/JpGrRbcPOwxCY5keTJfIYoPVAvNpUNCFNSg/ scExkOz5P8UCsKNCzUBFIZ2M/6MZYgKFx8pp1WrsF8+IvcVKnaQ6uVVRtI/tp58ZMWGg WeF4tm+wf0azWWOv0vIXNcSk6yx+vZGoGE4ib8AE7MS7PH7c+tFT3F+ZQfAHBMJgoOy3 yldM3LAYmAk+d1HWDuQznEqSN+gA2WI37JI0TURsZygO3Fy6cTmXs4gxAhbWJpMXi+z3 7LcaVsQRg0tb8gB7P95DJWX8YRZe7FClV6NiUYysUUdrQ3BFWMJeiuQ+L/ph86KpVxxL fAZQ== MIME-Version: 1.0 X-Received: by 10.14.203.3 with SMTP id e3mr91354970eeo.9.1360115581574; Tue, 05 Feb 2013 17:53:01 -0800 (PST) Received: by 10.14.100.200 with HTTP; Tue, 5 Feb 2013 17:53:01 -0800 (PST) In-Reply-To: <20753.38272.55066.651097@ruffy2.mtv.corp.google.com> References: <20753.38272.55066.651097@ruffy2.mtv.corp.google.com> Date: Wed, 06 Feb 2013 01:53:00 -0000 Message-ID: Subject: Re: [RFC - Python Scripting] New method gdb.Architecture.disassemble From: Siva Chandra To: Doug Evans Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=047d7b343b2a17dd3d04d5049670 X-Gm-Message-State: ALoCoQkFyPDAF4zYsdNGFXahoQt52DRmjy9YAX6U52DivlHKSQl053mYZENu9CCgvo50H3K+OQ1IDIQRtdAhU7Wh0DMGoOaWcmLy+XH5KgxSPFkieTO8sjx7AqIKOAG0u8ah/r5EHus76hmCX3hBFHSf6TlmPv+4qMcn5Oc+T3H4+I7ocWUJi1YJWYTjEZDO+uouhJMS0L5pZ3RNg6ctTOQGcNi108uSRA== 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/msg00133.txt.bz2 --047d7b343b2a17dd3d04d5049670 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1929 On Tue, Feb 5, 2013 at 3:28 PM, Doug Evans wrote: > I like the idea, but for an API I wouldn't mind seeing something > a bit lower level. E.g., skip the higher level disassembler entry > points in gdb (mixed source/assembly support and all that), and provide > more direct access to the disassembler. The only useful entry point currently available is gdb_disassembly and I do not think it is a bad entry point. Other disassembly functions in disasm.c are static. However, for the Python API, my patch provides only one option of whether to include or exclude opcodes in the disassembled output. > I didn't go through it with a fine toothed comb, but here are some questions. > 1) Can we remove the py_out global? At what level do you not want this to be global? I have made it static to the file in the attached patch. > 2) It seems like this will export a lot of struct ui_out to the user. > I'd rather provide disassembly without having to commit to supporting > struct ui_out in Python. I am not very sure I understand this point. My patch does not expose anything about the struct ui_out to the user/Python API. Python ui_out is only a way to get results from GDB internals into a Python data structure. Also, this Python data structure does not depend on gdb_disassembly's display format. 2013-02-05 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. --047d7b343b2a17dd3d04d5049670 Content-Type: text/plain; charset=US-ASCII; name="arch_disassemble_patch_v2.txt" Content-Disposition: attachment; filename="arch_disassemble_patch_v2.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hctsyxd10 Content-length: 18837 ZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5p bgppbmRleCA2OGQ1NDVlLi42YmU2NGNmIDEwMDY0NAotLS0gYS9nZGIvTWFr ZWZpbGUuaW4KKysrIGIvZ2RiL01ha2VmaWxlLmluCkBAIC0yOTEsNiArMjkx LDcgQEAgU1VCRElSX1BZVEhPTl9PQlMgPSBcCiAJcHktbGF6eS1zdHJpbmcu byBcCiAJcHktbmV3b2JqZmlsZWV2ZW50Lm8gXAogCXB5LW9iamZpbGUubyBc CisJcHktb3V0Lm8gXAogCXB5LXBhcmFtLm8gXAogCXB5LXByZXR0eXByaW50 Lm8gXAogCXB5LXByb2dzcGFjZS5vIFwKQEAgLTMyNSw2ICszMjYsNyBAQCBT VUJESVJfUFlUSE9OX1NSQ1MgPSBcCiAJcHl0aG9uL3B5LWxhenktc3RyaW5n LmMgXAogCXB5dGhvbi9weS1uZXdvYmpmaWxlZXZlbnQuYyBcCiAJcHl0aG9u L3B5LW9iamZpbGUuYyBcCisJcHl0aG9uL3B5LW91dC5jIFwKIAlweXRob24v cHktcGFyYW0uYyBcCiAJcHl0aG9uL3B5LXByZXR0eXByaW50LmMgXAogCXB5 dGhvbi9weS1wcm9nc3BhY2UuYyBcCkBAIC0yMTI5LDYgKzIxMzEsMTAgQEAg cHktb2JqZmlsZS5vOiAkKHNyY2RpcikvcHl0aG9uL3B5LW9iamZpbGUuYwog CSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9u L3B5LW9iamZpbGUuYwogCSQoUE9TVENPTVBJTEUpCiAKK3B5LW91dC5vOiAk KHNyY2RpcikvcHl0aG9uL3B5LW91dC5jCisJJChDT01QSUxFKSAkKFBZVEhP Tl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHktb3V0LmMKKwkkKFBPU1RD T01QSUxFKQorCiBweS1wYXJhbS5vOiAkKHNyY2RpcikvcHl0aG9uL3B5LXBh cmFtLmMKIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIp L3B5dGhvbi9weS1wYXJhbS5jCiAJJChQT1NUQ09NUElMRSkKZGlmZiAtLWdp dCBhL2dkYi9weXRob24vcHktYXJjaC5jIGIvZ2RiL3B5dGhvbi9weS1hcmNo LmMKaW5kZXggZWRkNTA4Zi4uYjE2MDhkNyAxMDA2NDQKLS0tIGEvZ2RiL3B5 dGhvbi9weS1hcmNoLmMKKysrIGIvZ2RiL3B5dGhvbi9weS1hcmNoLmMKQEAg LTE5LDYgKzE5LDcgQEAKIAogI2luY2x1ZGUgImRlZnMuaCIKICNpbmNsdWRl ICJnZGJhcmNoLmgiCisjaW5jbHVkZSAiZGlzYXNtLmgiCiAjaW5jbHVkZSAi YXJjaC11dGlscy5oIgogI2luY2x1ZGUgInB5dGhvbi1pbnRlcm5hbC5oIgog CkBAIC04Niw2ICs4Nyw0NSBAQCBhcmNocHlfbmFtZSAoUHlPYmplY3QgKnNl bGYsIFB5T2JqZWN0ICphcmdzKQogICByZXR1cm4gcHlfbmFtZTsKIH0KIAor LyogSW1wbGVtZW50YXRpb24gb2YgQXJjaGl0ZWN0dXJlLmRpc2Fzc2VtYmxl IChsb3csIGhpZ2gsIFtvcGNvZGVzXSkgLT4gTGlzdC4KKyAgIFJldHVybnMg YSBsaXN0IG9mIGluc3RydWN0aW9ucywgZWFjaCBvZiB3aGljaCBpcyBhIGRp Y3Rpb25hcnkuICAqLworCitzdGF0aWMgUHlPYmplY3QgKgorYXJjaHB5X2Rp c2Fzc2VtYmxlIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7 CisgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gYXJjaF9vYmplY3RfdG9f Z2RiYXJjaCAoc2VsZik7CisgIENPUkVfQUREUiBsb3csIGhpZ2g7CisgIGlu dCBvcGNvZGVzID0gMCwgZmxhZ3MgPSAwOworICBQeU9iamVjdCAqcmVzdWx0 LCAqdGVtcDsKKyAgc3RydWN0IHVpX291dCAqcHlfb3V0ID0gcHlfdWlfb3V0 ICgpOworICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleGNlcHQ7 CisKKyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlIChhcmdzLCAiS0t8aSIsICZs b3csICZoaWdoLCAmb3Bjb2RlcykpCisgICAgcmV0dXJuIE5VTEw7CisKKyAg aWYgKG9wY29kZXMpCisgICAgZmxhZ3MgPSBESVNBU1NFTUJMWV9SQVdfSU5T TjsKKworICBUUllfQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfQUxMKQor ICAgIHsKKyAgICAgIGdkYl9kaXNhc3NlbWJseSAoZ2RiYXJjaCwgcHlfb3V0 LCBOVUxMLCBmbGFncywgLTEsIGxvdywgaGlnaCk7CisgICAgfQorICBHREJf UFlfSEFORExFX0VYQ0VQVElPTiAoZXhjZXB0KTsKKworICB0ZW1wID0gZmV0 Y2hfYW5kX3Jlc2V0X3B5X291dF9vYmplY3QgKHB5X291dCk7CisgIGlmICgh IChQeUxpc3RfQ2hlY2sgKHRlbXApICYmIFB5TGlzdF9TaXplICh0ZW1wKSA+ IDApKQorICAgIHJldHVybiBOVUxMOworCisgIC8qIGdkYl9kaXNhc3NlbWJs eSBwdXRzIGEgbGlzdCBvZiBsaXN0cyBpbiBweV9vdXQgd2l0aCB0aGUgaGln aGVyIGxldmVsIGxpc3QKKyAgICAgY29udGFpbmluZyBhIHNpbmdsZSBpdGVt IHdoaWNoIGlzIGl0c2VsZiBhIGxpc3Qgb2YgaW5zdHJ1Y3Rpb25zLiAgSGVu Y2UsCisgICAgIHJldHVybiB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgaGln aGVyIGxldmVsIGxpc3QuICAqLworICByZXN1bHQgPSBQeUxpc3RfR2V0SXRl bSAodGVtcCwgMCk7CisgIFB5X1hJTkNSRUYgKHJlc3VsdCk7CisgIFB5X1hE RUNSRUYgKHRlbXApOworCisgIHJldHVybiByZXN1bHQ7Cit9CisKIC8qIElu aXRpYWxpemVzIHRoZSBBcmNoaXRlY3R1cmUgY2xhc3MgaW4gdGhlIGdkYiBt b2R1bGUuICAqLwogCiB2b2lkCkBAIC0xMDUsNiArMTQ1LDkgQEAgc3RhdGlj IFB5TWV0aG9kRGVmIGFyY2hfb2JqZWN0X21ldGhvZHMgW10gPSB7CiAgIHsg Im5hbWUiLCBhcmNocHlfbmFtZSwgTUVUSF9OT0FSR1MsCiAgICAgIm5hbWUg KCkgLT4gU3RyaW5nLlxuXAogUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBhcmNo aXRlY3R1cmUgYXMgYSBzdHJpbmcgdmFsdWUuIiB9LAorICB7ICJkaXNhc3Nl bWJsZSIsIGFyY2hweV9kaXNhc3NlbWJsZSwgTUVUSF9WQVJBUkdTLAorICAg ICJuYW1lIChsb3csIGhpZ2gsIFtvcGNvZGVzXSkgLT4gTGlzdC5cblwKK1Jl dHVybiB0aGUgbGlzdCBvZiBpbnN0cnVjdGlvbnMgaW4gdGhlIGFkZHJlc3Mg cmFuZ2UgZnJvbSBMT1cgdG8gSElHSC4iIH0sCiAgIHtOVUxMfSAgLyogU2Vu dGluZWwgKi8KIH07CiAKZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktb3V0 LmMgYi9nZGIvcHl0aG9uL3B5LW91dC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmY2YTE0NTYKLS0tIC9kZXYvbnVsbAorKysgYi9n ZGIvcHl0aG9uL3B5LW91dC5jCkBAIC0wLDAgKzEsMjY1IEBACisvKiBQeXRo b24gdWlfb3V0IGltcGxlbWVudGF0aW9uLgorCisgICBDb3B5cmlnaHQgKEMp IDIwMTMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKworICAgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9m IHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LiAgKi8KKworI2luY2x1ZGUgImRlZnMuaCIKKyNpbmNsdWRlICJ1aS1v dXQuaCIKKyNpbmNsdWRlICJweXRob24taW50ZXJuYWwuaCIKKworc3RhdGlj IHN0cnVjdCB1aV9vdXQgKnB5X291dDsKKworc3RydWN0IHJvd19kYXRhCit7 CisgIC8qIERBVEEgaXMgZWl0aGVyIGEgbGlzdCBvZiByb3dzLCBvciBqdXN0 IGEgZGljdC4gICovCisgIFB5T2JqZWN0ICpkYXRhOworCisgIC8qIFRoZSBl bmNsb3Npbmcgcm93IGZvciB0aGUgYWJvdmUgREFUQS4gICovCisgIHN0cnVj dCByb3dfZGF0YSAqcGFyZW50X3JvdzsKK307CisKKy8qIFRoaXMgZGF0YSBz dHJ1Y3R1cmUgY2FwdHVyZXMgdGhlIFB5dGhvbiB2ZXJzaW9uIG9mIHVpX291 dC4gIFRoZSBQeXRob24KKyAgIHZlcnNpb24gaXMgbm90IHVzZWQgdG8gZGlz cGxheSBvdXRwdXQgdG8gYSB1c2VyLCBidXQgdG8gY2FwdHVyZSB0aGUgcmVz dWx0cworICAgZnJvbSBHREIncyBpbnRlcm5hbHMgaW4gdG8gYSBQeXRob24g ZGF0YSBzdHJ1Y3R1cmUuICBIZW5jZSwgaXQgZG9lcyBub3QgaGF2ZQorICAg YW55IHJlcHJlc2VudGF0aW9uIGZvciB0YWJsZSBoZWFkZXJzLiAgSG93ZXZl ciwgaXQgY2FuIGJlIHZpZXdlZCBhcyBhCisgICByZWN1cnNpdmUgdGFibGUg c3RydWN0dXJlIHdoZXJpbiB0aGUgaGlnaGVzdCBsZXZlbCBpcyBhIGxpc3Qg b2Ygcm93cy4gIEFsbAorICAgcm93cyBpbiB0aGlzIGxpc3QgY2FuIGVpdGhl ciBiZSBhIGxpc3QgdGhlbXNlbHZlcywgb3IgYWxsIG9mIHRoZW0gY2FuIGJl CisgICBkaWN0cyBob2xkaW5nIHRoZSB0YWJsZSdzIGZpZWxkcy4gIElmIHRo ZXkgd2VyZSBsaXN0cywgdGhlbiB0aGV5IGZvbGxvdyB0aGUKKyAgIHNhbWUg cmVjdXJyc2l2ZSBzdHJ1Y3R1cmUgYXMgdGhlIGhpZ2hlciBsZXZlbHMuCisK KyAgIEV4YW1wbGU6CisKKyAgICAgICBbICMgSGlnaGVzdCBsZXZlbCBsaXN0 IHdoaWNoIGhhcyB0d28gbGlzdHMgZm9yIHJvd3MKKyAgICAgICAgIFsgIyBJ bm5lciBsZXZlbCByb3cgd2hpY2ggaXMgYSBsaXN0IG9mIGxpc3RzCisgICAg ICAgICAgIFsgIyBJbm5lciBsZXZlbCByb3cgd2hpY2ggaXMgYSBsaXN0IG9m IGRpY3RzCisgICAgICAgICAgICAgeydhJzogMSwgJ2InOiAyfSwgIyBMZWFm IHJvdyB3aGljaCBpcyBhIGRpY3QKKyAgICAgICAgICAgICB7J2EnOiAzLCAn Yic6IDR9LCAjIExlYWYgcm93IHdoaWNoIGlzIGEgZGljdAorICAgICAgICAg ICBdLAorCisgICAgICAgICAgIFsgIyBJbm5lciBsZXZlbCByb3cgd2hpY2gg aXMgYSBsaXN0IG9mIGRpY3RzCisgICAgICAgICAgICAgeyd4JzogNSwgJ3kn OiA2fSwgIyBMZWFmIHJvdyB3aGljaCBpcyBhIGRpY3QKKyAgICAgICAgICAg ICB7J3gnOiA3LCAneSc6IDh9LCAjIExlYWYgcm93IHdoaWNoIGlzIGEgZGlj dAorICAgICAgICAgICBdLAorICAgICAgICAgXSwKKworICAgICAgICAgWyAj IElubmVyIGxldmVsIHJvdyB3aGljaCBpcyBsaXN0IG9mIGRpY3RzCisgICAg ICAgICAgIHsncCc6IDEsICdxJzogMn0sICMgTGVhZiByb3cgd2hpY2ggaXMg YSBkaWN0CisgICAgICAgICAgIHsncCc6IDMsICdxJzogNH0sICMgTGVhZiBy b3cgd2hpY2ggaXMgYSBkaWN0CisgICAgICAgICBdLAorICAgICAgIF0KKyov CisKK3N0cnVjdCBweV9vdXRfZGF0YQoreworICAvKiBUaGUgaGlnaGVzdCBs ZXZlbCBsaXN0IG9mIHJvd3MuICAqLworICBzdHJ1Y3Qgcm93X2RhdGEgKnRh YmxlOworCisgIC8qIFRoZSBjdXJyZW50IHJvdyB0aGF0IGlzIGJlaW5nIGFk ZGVkIHRvIHRoZSB0YWJsZS4gICovCisgIHN0cnVjdCByb3dfZGF0YSAqY3Vy cmVudF9yb3c7Cit9OworCitzdGF0aWMgc3RydWN0IHJvd19kYXRhICoKK25l d19yb3cgKHN0cnVjdCByb3dfZGF0YSAqcGFyZW50KQoreworICBzdHJ1Y3Qg cm93X2RhdGEgKnJvdzsKKworICByb3cgPSAoc3RydWN0IHJvd19kYXRhICop IHhtYWxsb2MgKHNpemVvZiAoc3RydWN0IHJvd19kYXRhKSk7CisgIHJvdy0+ ZGF0YSA9IE5VTEw7CisgIHJvdy0+cGFyZW50X3JvdyA9IHBhcmVudDsKKwor ICByZXR1cm4gcm93OworfQorCitQeU9iamVjdCAqCitmZXRjaF9hbmRfcmVz ZXRfcHlfb3V0X29iamVjdCAoc3RydWN0IHVpX291dCAqdWlfb3V0KQorewor ICBQeU9iamVjdCAqdGVtcDsKKyAgc3RydWN0IHB5X291dF9kYXRhICpweV9v dXRfZGF0YSA9IHVpX291dF9kYXRhICh1aV9vdXQpOworCisgIC8qIEVuc3Vy ZSB0aGF0IHRoZSBweV9vdXQgb2JqZWN0IGlzIGNvbXBsZXRlLiAgKi8KKyAg aWYgKHB5X291dF9kYXRhLT5jdXJyZW50X3JvdyAhPSBweV9vdXRfZGF0YS0+ dGFibGUpCisgICAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVf XywKKyAgICAgICAgICAgICAgICAgICAgXygiVHJ5aW5nIHRvIGZldGNoIGFu IGluY29tcGxldGUgUHl0aG9uIHVpX291dCBvYmplY3QiKSk7CisKKyAgdGVt cCA9IHB5X291dF9kYXRhLT50YWJsZS0+ZGF0YTsKKyAgcHlfb3V0X2RhdGEt PnRhYmxlLT5kYXRhID0gUHlMaXN0X05ldyAoMCk7CisKKyAgcmV0dXJuIHRl bXA7Cit9CisKK3N0YXRpYyB2b2lkCitweV9vdXRfcm93X2JlZ2luIChzdHJ1 Y3QgdWlfb3V0ICp1aV9vdXQsIGVudW0gdWlfb3V0X3R5cGUgdHlwZSwgaW50 IGxldmVsLAorICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaWQpCit7 CisgIHN0cnVjdCBweV9vdXRfZGF0YSAqcHlfb3V0X2RhdGEgPSB1aV9vdXRf ZGF0YSAodWlfb3V0KTsKKworICBpZiAocHlfb3V0X2RhdGEtPmN1cnJlbnRf cm93KQorICAgIHsKKyAgICAgIGlmIChweV9vdXRfZGF0YS0+Y3VycmVudF9y b3ctPmRhdGEpCisgICAgICAgIHsKKyAgICAgICAgICBpZiAoUHlEaWN0X0No ZWNrIChweV9vdXRfZGF0YS0+Y3VycmVudF9yb3ctPmRhdGEpKQorICAgICAg ICAgICAgLyogSWYgdGhlIHJvdyBoYXMgZGF0YSwgY2hlY2sgdGhhdCBpdCBp cyBub3QgYSBkaWN0IGZpcnN0LiAgKi8KKyAgICAgICAgICAgIGludGVybmFs X2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXygiVHJ5aW5nIHRvIGFkZCBhIHJvdyB0byBhIHJvdyB3 aGljaCBoYXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZp ZWxkcy4iKSk7CisgICAgICAgICAgZWxzZSBpZiAoUHlMaXN0X0NoZWNrIChw eV9vdXRfZGF0YS0+Y3VycmVudF9yb3ctPmRhdGEpKQorICAgICAgICAgICAg eworICAgICAgICAgICAgICAvKiBJZiB0aGUgcm93IGlzIGFscmVhZHkgYSBs aXN0LCBhZGQgYSBuZXcgcm93LiAgKi8KKyAgICAgICAgICAgICAgc3RydWN0 IHJvd19kYXRhICpuZXdfcm93X2RhdGE7CisKKyAgICAgICAgICAgICAgbmV3 X3Jvd19kYXRhID0gbmV3X3JvdyAocHlfb3V0X2RhdGEtPmN1cnJlbnRfcm93 KTsKKyAgICAgICAgICAgICAgcHlfb3V0X2RhdGEtPmN1cnJlbnRfcm93ID0g bmV3X3Jvd19kYXRhOworICAgICAgICAgICAgfQorICAgICAgICAgIGVsc2UK KyAgICAgICAgICAgIC8qIElmIGl0IGlzIG5laXRoZXIgYSBsaXN0IG9yIGEg ZGljdCwgdGhlbiBzb21ldGhpbmcgaGFzIGdvbmUgd3JvbmcKKyAgICAgICAg ICAgICAgIHNvbWV3aGVyZS4gICovCisgICAgICAgICAgICBpbnRlcm5hbF9l cnJvciAoX19GSUxFX18sIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF8oIlVuZXhwZWN0ZWQgaW50ZXJuYWwgc3RhdGUgaW4gY3Jl YXRpbmcgUHl0aG9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJ1aV9vdXQgb2JqZWN0LiIpKTsKKyAgICAgICAgfQorICAgICAgZWxzZQor ICAgICAgICB7CisgICAgICAgICAgLyogTWFrZSB0aGUgY3VycmVudCByb3cg YSBsaXN0IGFuZCBhZGQgYSBuZXcgcm93LiAgKi8KKyAgICAgICAgICBzdHJ1 Y3Qgcm93X2RhdGEgKm5ld19yb3dfZGF0YTsKKworICAgICAgICAgIHB5X291 dF9kYXRhLT5jdXJyZW50X3Jvdy0+ZGF0YSA9IFB5TGlzdF9OZXcgKDApOwor ICAgICAgICAgIG5ld19yb3dfZGF0YSA9IG5ld19yb3cgKHB5X291dF9kYXRh LT5jdXJyZW50X3Jvdyk7CisgICAgICAgICAgcHlfb3V0X2RhdGEtPmN1cnJl bnRfcm93ID0gbmV3X3Jvd19kYXRhOyAKKyAgICAgICAgfQorICAgIH0KKyAg ZWxzZQorICAgIHsKKyAgICAgIC8qIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBl bi4gICovCisgICAgICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElO RV9fLAorICAgICAgICAgICAgICAgICAgICAgIF8oIlVuZXhwZWN0ZWQgaW50 ZXJuYWwgc3RhdGUgaW4gY3JlYXRpbmcgUHl0aG9uIHVpX291dCAiCisgICAg ICAgICAgICAgICAgICAgICAgICAib2JqZWN0LiIpKTsKKyAgICB9Cit9CisK K3N0YXRpYyB2b2lkCitweV9vdXRfcm93X2VuZCAoc3RydWN0IHVpX291dCAq dWlfb3V0LCBlbnVtIHVpX291dF90eXBlIHR5cGUsIGludCBsZXZlbCkKK3sK KyAgc3RydWN0IHB5X291dF9kYXRhICpweV9vdXRfZGF0YSA9IHVpX291dF9k YXRhICh1aV9vdXQpOworICBzdHJ1Y3Qgcm93X2RhdGEgKnRlbXA7CisKKyAg LyogSWYgbm90aGluZyB3YXMgYWRkZWQgdG8gY3VycmVudCByb3csIHRoZW4g bWFrZSBpdCBQeV9Ob25lLiAgKi8KKyAgaWYgKHB5X291dF9kYXRhLT5jdXJy ZW50X3Jvdy0+ZGF0YSA9PSBOVUxMKQorICAgIHsKKyAgICAgIFB5X0lOQ1JF RiAoUHlfTm9uZSk7CisgICAgICBweV9vdXRfZGF0YS0+Y3VycmVudF9yb3ct PmRhdGEgPSBQeV9Ob25lOworICAgIH0KKworICAvKiBDb21taXQgdGhlIHJv dyB0byB0aGUgcGFyZW50IGxpc3QuICAqLworICBQeUxpc3RfQXBwZW5kIChw eV9vdXRfZGF0YS0+Y3VycmVudF9yb3ctPnBhcmVudF9yb3ctPmRhdGEsCisg ICAgICAgICAgICAgICAgIHB5X291dF9kYXRhLT5jdXJyZW50X3Jvdy0+ZGF0 YSk7CisKKyAgLyogTW92ZSB1cCBhIGxldmVsIGJ5IG1ha2luZyB0aGUgcGFy ZW50IHJvdyBhcyB0aGUgY3VycmVudCByb3cgYW5kIGZyZWUgdGhlCisgICAg IHJvd19kYXRhIG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIGN1cnJlbnRfcm93 LiAgKi8KKyAgdGVtcCA9IHB5X291dF9kYXRhLT5jdXJyZW50X3JvdzsKKyAg cHlfb3V0X2RhdGEtPmN1cnJlbnRfcm93ID0gcHlfb3V0X2RhdGEtPmN1cnJl bnRfcm93LT5wYXJlbnRfcm93OworICB4ZnJlZSAodGVtcCk7Cit9CisKKyNk ZWZpbmUgQ0hFQ0tfQU5EX0lOSVRfRklFTERfUk9XX0RBVEEoZGF0YSkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZG8geyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgaWYgKCEoZGF0YSkp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKGRhdGEpID0gUHlEaWN0X05l dyAoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgICBpZiAoIVB5RGljdF9DaGVjayAoKGRhdGEpKSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBp bnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF8oIkFkZGluZyBmaWVsZHMgdG8gYSByb3cgd2hpY2ggaXMgbm90 IGEgZmllbGQgIiAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJyb3cuIikpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgIH0gd2hpbGUgKDApCisKK3N0YXRpYyB2b2lkCitweV9vdXRfZmllbGRf aW50IChzdHJ1Y3QgdWlfb3V0ICogdWlfb3V0LCBpbnQgZmxkbm8sIGludCB3 aWR0aCwKKyAgICAgICAgICAgICAgICAgIGVudW0gdWlfYWxpZ24gYWxpZ24s IGNvbnN0IGNoYXIgKmZsZG5hbWUsIGludCB2YWx1ZSkKK3sKKyAgc3RydWN0 IHB5X291dF9kYXRhICpweV9vdXRfZGF0YSA9IHVpX291dF9kYXRhICh1aV9v dXQpOworCisgIENIRUNLX0FORF9JTklUX0ZJRUxEX1JPV19EQVRBIChweV9v dXRfZGF0YS0+Y3VycmVudF9yb3ctPmRhdGEpOworCisgIFB5RGljdF9TZXRJ dGVtU3RyaW5nIChweV9vdXRfZGF0YS0+Y3VycmVudF9yb3ctPmRhdGEsIGZs ZG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBQeUludF9Gcm9tTG9u ZyAodmFsdWUpKTsKK30KKworc3RhdGljIHZvaWQKK3B5X291dF9maWVsZF9z a2lwIChzdHJ1Y3QgdWlfb3V0ICp1aV9vdXQsIGludCBmbGRubywgaW50IHdp ZHRoLAorICAgICAgICAgICAgICAgICAgIGVudW0gdWlfYWxpZ24gYWxpZ24s IGNvbnN0IGNoYXIgKmZsZG5hbWUpCit7CisgIHN0cnVjdCBweV9vdXRfZGF0 YSAqcHlfb3V0X2RhdGEgPSB1aV9vdXRfZGF0YSAodWlfb3V0KTsKKworICBD SEVDS19BTkRfSU5JVF9GSUVMRF9ST1dfREFUQSAocHlfb3V0X2RhdGEtPmN1 cnJlbnRfcm93LT5kYXRhKTsKKworICBQeV9JTkNSRUYgKFB5X05vbmUpOwor ICBQeURpY3RfU2V0SXRlbVN0cmluZyAocHlfb3V0X2RhdGEtPmN1cnJlbnRf cm93LT5kYXRhLCBmbGRuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg UHlfTm9uZSk7Cit9CisKK3N0YXRpYyB2b2lkCitweV9vdXRfZmllbGRfc3Ry aW5nIChzdHJ1Y3QgdWlfb3V0ICogdWlfb3V0LCBpbnQgZmxkbm8sIGludCB3 aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgIGVudW0gdWlfYWxpZ24gYWxp Z24sIGNvbnN0IGNoYXIgKmZsZG5hbWUsIGNvbnN0IGNoYXIgKnN0cikKK3sK KyAgc3RydWN0IHB5X291dF9kYXRhICpweV9vdXRfZGF0YSA9IHVpX291dF9k YXRhICh1aV9vdXQpOworCisgIENIRUNLX0FORF9JTklUX0ZJRUxEX1JPV19E QVRBIChweV9vdXRfZGF0YS0+Y3VycmVudF9yb3ctPmRhdGEpOworCisgIFB5 RGljdF9TZXRJdGVtU3RyaW5nIChweV9vdXRfZGF0YS0+Y3VycmVudF9yb3ct PmRhdGEsIGZsZG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBQeVN0 cmluZ19Gcm9tU3RyaW5nIChzdHIpKTsKK30KKworc3RhdGljIHN0cnVjdCB1 aV9vdXRfaW1wbCBweV91aV9vdXRfaW1wbCA9IAoreworICAwLCAgICAgICAg ICAgICAgICAgICAgICAgIC8qIHRhYmxlX2JlZ2luICAqLworICAwLCAgICAg ICAgICAgICAgICAgICAgICAgIC8qIHRhYmxlX2JvZHkgICovCisgIDAsICAg ICAgICAgICAgICAgICAgICAgICAgLyogdGFibGVfZW5kICAqLworICAwLCAg ICAgICAgICAgICAgICAgICAgICAgIC8qIHRhYmxlX2hlYWRlciAgKi8KKyAg cHlfb3V0X3Jvd19iZWdpbiwgICAgICAgICAvKiBiZWdpbiAgKi8KKyAgcHlf b3V0X3Jvd19lbmQsICAgICAgICAgICAvKiBlbmQgICovCisgIHB5X291dF9m aWVsZF9pbnQsICAgICAgICAgLyogZmllbGRfaW50ICAqLworICBweV9vdXRf ZmllbGRfc2tpcCwgICAgICAgIC8qIGZpZWxkX3NraXAgICovCisgIHB5X291 dF9maWVsZF9zdHJpbmcsICAgICAgLyogZmllbGRfc3RyaW5nICAqLworICAw LCAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZpZWxkX2ZtdCAgKi8KKyAg MCwgICAgICAgICAgICAgICAgICAgICAgICAvKiBzcGFjZSAgKi8KKyAgMCwg ICAgICAgICAgICAgICAgICAgICAgICAvKiB0ZXh0ICAqLworICAwLCAgICAg ICAgICAgICAgICAgICAgICAgIC8qIG1lc3NhZ2UgICovCisgIDAsICAgICAg ICAgICAgICAgICAgICAgICAgLyogd3JhcF9oaW50ICAqLworICAwLCAgICAg ICAgICAgICAgICAgICAgICAgIC8qIGZsdXNoICAqLworICAwLCAgICAgICAg ICAgICAgICAgICAgICAgIC8qIHJlZGlyZWN0ICAqLworICAwICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIGlzX21pX2xpa2VfcCAgKi8KK307CisKK3Zv aWQKK2dkYnB5X2luaXRpYWxpemVfcHlfb3V0ICh2b2lkKQoreworICBzdHJ1 Y3QgcHlfb3V0X2RhdGEgKnB5X291dF9kYXRhOworCisgIHB5X291dF9kYXRh ID0gKHN0cnVjdCBweV9vdXRfZGF0YSAqKSB4bWFsbG9jIChzaXplb2YgKHN0 cnVjdCBweV9vdXRfZGF0YSkpOworICBweV9vdXRfZGF0YS0+dGFibGUgPSBu ZXdfcm93IChOVUxMKTsKKyAgcHlfb3V0X2RhdGEtPnRhYmxlLT5kYXRhID0g UHlMaXN0X05ldyAoMCk7CisgIHB5X291dF9kYXRhLT5jdXJyZW50X3JvdyA9 IHB5X291dF9kYXRhLT50YWJsZTsKKworICBweV9vdXQgPSB1aV9vdXRfbmV3 ICgmcHlfdWlfb3V0X2ltcGwsIHB5X291dF9kYXRhLCAwKTsKK30KKworc3Ry dWN0IHVpX291dCAqCitweV91aV9vdXQgKHZvaWQpCit7CisgIHJldHVybiBw eV9vdXQ7Cit9CmRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi1pbnRl cm5hbC5oIGIvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAppbmRleCA4 ZGZmMWQ3Li5jYmM5ZjMxIDEwMDY0NAotLS0gYS9nZGIvcHl0aG9uL3B5dGhv bi1pbnRlcm5hbC5oCisrKyBiL2dkYi9weXRob24vcHl0aG9uLWludGVybmFs LmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbjsK IHN0cnVjdCBwcm9ncmFtX3NwYWNlOwogc3RydWN0IGJwc3RhdHM7CiBzdHJ1 Y3QgaW5mZXJpb3I7CitzdHJ1Y3QgdWlfb3V0OwogCiBleHRlcm4gUHlPYmpl Y3QgKmdkYl9tb2R1bGU7CiBleHRlcm4gUHlPYmplY3QgKmdkYl9weXRob25f bW9kdWxlOwpAQCAtMjY3LDYgKzI2OCw5IEBAIHN0cnVjdCBzeW10YWJfYW5k X2xpbmUgKnNhbF9vYmplY3RfdG9fc3ltdGFiX2FuZF9saW5lIChQeU9iamVj dCAqb2JqKTsKIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZV9vYmplY3RfdG9f ZnJhbWVfaW5mbyAoUHlPYmplY3QgKmZyYW1lX29iaik7CiBzdHJ1Y3QgZ2Ri YXJjaCAqYXJjaF9vYmplY3RfdG9fZ2RiYXJjaCAoUHlPYmplY3QgKm9iaik7 CiAKK1B5T2JqZWN0ICpmZXRjaF9hbmRfcmVzZXRfcHlfb3V0X29iamVjdCAo c3RydWN0IHVpX291dCAqKTsKK3N0cnVjdCB1aV9vdXQgKnB5X3VpX291dCAo dm9pZCk7CisKIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9nZGJfcmVhZGxpbmUg KHZvaWQpOwogdm9pZCBnZGJweV9pbml0aWFsaXplX2F1dG9fbG9hZCAodm9p ZCk7CiB2b2lkIGdkYnB5X2luaXRpYWxpemVfdmFsdWVzICh2b2lkKTsKQEAg LTI5Nyw2ICszMDEsNyBAQCB2b2lkIGdkYnB5X2luaXRpYWxpemVfZXhpdGVk X2V2ZW50ICh2b2lkKTsKIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV90aHJlYWRf ZXZlbnQgKHZvaWQpOwogdm9pZCBnZGJweV9pbml0aWFsaXplX25ld19vYmpm aWxlX2V2ZW50ICh2b2lkKTsKIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9hcmNo ICh2b2lkKTsKK3ZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9weV9vdXQgKHZvaWQp OwogCiBzdHJ1Y3QgY2xlYW51cCAqbWFrZV9jbGVhbnVwX3B5X2RlY3JlZiAo UHlPYmplY3QgKnB5KTsKIApkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRo b24uYyBiL2dkYi9weXRob24vcHl0aG9uLmMKaW5kZXggNTNkZGVlOS4uM2Fi NGI3YyAxMDA2NDQKLS0tIGEvZ2RiL3B5dGhvbi9weXRob24uYworKysgYi9n ZGIvcHl0aG9uL3B5dGhvbi5jCkBAIC0xNjIxLDYgKzE2MjEsNyBAQCBtZXNz YWdlID09IGFuIGVycm9yIG1lc3NhZ2Ugd2l0aG91dCBhIHN0YWNrIHdpbGwg YmUgcHJpbnRlZC4iKSwKICAgZ2RicHlfaW5pdGlhbGl6ZV90aHJlYWRfZXZl bnQgKCk7CiAgIGdkYnB5X2luaXRpYWxpemVfbmV3X29iamZpbGVfZXZlbnQg KCkgOwogICBnZGJweV9pbml0aWFsaXplX2FyY2ggKCk7CisgIGdkYnB5X2lu aXRpYWxpemVfcHlfb3V0ICgpOwogCiAgIG9ic2VydmVyX2F0dGFjaF9iZWZv cmVfcHJvbXB0IChiZWZvcmVfcHJvbXB0X2hvb2spOwogCg== --047d7b343b2a17dd3d04d5049670--