From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27843 invoked by alias); 5 Oct 2011 11:10:59 -0000 Received: (qmail 27827 invoked by uid 22791); 5 Oct 2011 11:10:56 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_BJ,TW_EV,TW_VP X-Spam-Check-By: sourceware.org Received: from mail-vw0-f41.google.com (HELO mail-vw0-f41.google.com) (209.85.212.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 05 Oct 2011 11:10:39 +0000 Received: by vws16 with SMTP id 16so1474305vws.0 for ; Wed, 05 Oct 2011 04:10:38 -0700 (PDT) Received: by 10.52.180.4 with SMTP id dk4mr2325841vdc.49.1317813038148; Wed, 05 Oct 2011 04:10:38 -0700 (PDT) MIME-Version: 1.0 Received: by 10.220.178.4 with HTTP; Wed, 5 Oct 2011 04:10:18 -0700 (PDT) In-Reply-To: References: From: Kevin Pouget Date: Wed, 05 Oct 2011 11:10:00 -0000 Message-ID: Subject: Re: [RFC - Python] New ObjFile event To: Tom Tromey , Eli Zaretskii Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=bcaec517ac6a04ebaa04ae8b425a 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: 2011-10/txt/msg00126.txt.bz2 --bcaec517ac6a04ebaa04ae8b425a Content-Type: text/plain; charset=ISO-8859-1 Content-length: 2708 On Tue, Oct 4, 2011 at 7:01 PM, Tom Tromey wrote: > > >>>>> "Kevin" == Kevin Pouget writes: > > Tom> Why not simply make the objfile object an attribute of the event? > Tom> That seems cleaner to me. > > Kevin> We already discussed this point, but it was at the end of ... March :) > > Thanks for the reminder. > I completely forgot about that. > > Kevin> I was ambivalent about this point too; I chose > Kevin> "gdb.current_objfile()" because autoloading > Kevin> (http://sourceware.org/gdb/current/onlinedocs/gdb/Auto_002dloading.html) > Kevin> already does it this way, and the two features are pretty similar. I > Kevin> felt that it would have been strange to access "gdb.current_objfile ()" > Kevin> in one case, and sth like "event.new_objfile" in the other case > > Ok, I see. > > I think it is best to pass it as part of the event. > It is ok with me if you also want to have it set the current objfile. > > Tom I got rid of the "gdb.current_objfile ()" access to the objfile and kept only the "NewObjFile.new_objfile" attribute of the Event object, which indeed makes more sense. I've updated the code and documentation accordingly; could you please tell me if it seems good for you? Thanks, Kevin 2011-10-05 Kevin Pouget Allow Python notification of new object-file loadings. * Makefile.in (SUBDIR_PYTHON_SRCS): Add py-newobjfilevent.c. (SUBDIR_PYTHON_OBS): Add py-newobjfileevent.o. Add build rule for this file. * python/py-event.h (emit_new_objfile_event): New prototype. (newobjfile): New Python event emitter. * python/py-evts.c (gdbpy_initialize_py_events): Add new_objfile to Python event registry. * python/py-inferior.c: Include objfiles.h (python_new_objfile): New function. (gdbpy_initialize_inferior): Add python_new_objfile to the new objfile observers. * python/py-newobjfileevent.c: New file. * python-internal.h (gdbpy_initialize_new_objfile_event): New prototype. (gdbpy_current_objfile): New global variable. * python/python.c (gdbpy_current_objfile): Make global. (_initialize_python): Add gdbpy_initialize_new_objfile_event call. * NEWS: Add item for new Python event "gdb.newobjfile" 2011-10-05 Kevin Pouget Allow Python notification of new object-file loadings. * gdb.texinfo (Events In Python): Document `gdb.NewObjFileEvent' event type. 2011-10-05 Kevin Pouget Allow Python notification of new object-file loadings. * gdb.python/py-events.exp: Test newobjfile event. * gdb.python/py-events.py: Register newobjfile callback. * gdb.python/py-events.c: Add call to shared library * gdb.python/py-events-shlib.c: New file. --bcaec517ac6a04ebaa04ae8b425a Content-Type: text/x-patch; charset=US-ASCII; name="0001-New-ObjFile-event.patch" Content-Disposition: attachment; filename="0001-New-ObjFile-event.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gte7m5wk0 Content-length: 19553 RnJvbSA1OTg0Yzg5ZjVhNWFlOTgwYzA5ZGFmOTQyYzk3MjJiMDNmZDBjZDQx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLZXZpbiBQb3VnZXQg PGtldmluLnBvdWdldEBzdC5jb20+CkRhdGU6IFRodSwgMSBTZXAgMjAxMSAx MTowODoyMyArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIE5ldyBPYmpGaWxlIGV2 ZW50CgotLS0KIGdkYi9NYWtlZmlsZS5pbiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgIDYgKysKIGdkYi9ORVdTICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgIDIgKwogZ2RiL2RvYy9nZGIudGV4aW5m byAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKysrCiBnZGIvcHl0 aG9uL3B5LWV2ZW50LmggICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsK IGdkYi9weXRob24vcHktZXZlbnRzLmggICAgICAgICAgICAgICAgICAgICB8 ICAgIDEgKwogZ2RiL3B5dGhvbi9weS1ldnRzLmMgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgMyArCiBnZGIvcHl0aG9uL3B5LWluZmVyaW9yLmMgICAg ICAgICAgICAgICAgICAgfCAgIDIxICsrKysrKysrCiBnZGIvcHl0aG9uL3B5 LW5ld29iamZpbGVldmVudC5jICAgICAgICAgICAgfCAgIDcwICsrKysrKysr KysrKysrKysrKysrKysrKysrKysKIGdkYi9weXRob24vcHl0aG9uLWludGVy bmFsLmggICAgICAgICAgICAgICB8ICAgIDIgKwogZ2RiL3B5dGhvbi9weXRo b24uYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArKy0KIGdkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1ldmVudHMtc2hsaWIuYyB8ICAgMjAg KysrKysrKysKIGdkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1ldmVudHMu YyAgICAgICB8ICAgIDMgKwogZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LWV2ZW50cy5leHAgICAgIHwgICAyNiArKysrKysrKy0tCiBnZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktZXZlbnRzLnB5ICAgICAgfCAgIDIwICsrKysr KysrCiAxNCBmaWxlcyBjaGFuZ2VkLCAxODUgaW5zZXJ0aW9ucygrKSwgNyBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvcHl0aG9uL3B5 LW5ld29iamZpbGVldmVudC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rl c3RzdWl0ZS9nZGIucHl0aG9uL3B5LWV2ZW50cy1zaGxpYi5jCgpkaWZmIC0t Z2l0IGEvZ2RiL01ha2VmaWxlLmluIGIvZ2RiL01ha2VmaWxlLmluCmluZGV4 IDgyNmQzMzkuLjk4NjU4OGIgMTAwNjQ0Ci0tLSBhL2dkYi9NYWtlZmlsZS5p bgorKysgYi9nZGIvTWFrZWZpbGUuaW4KQEAgLTI4OSw2ICsyODksNyBAQCBT VUJESVJfUFlUSE9OX09CUyA9IFwKIAlweS1pbmZlcmlvci5vIFwKIAlweS1p bmZ0aHJlYWQubyBcCiAJcHktbGF6eS1zdHJpbmcubyBcCisJcHktbmV3b2Jq ZmlsZWV2ZW50Lm8gXAogCXB5LW9iamZpbGUubyBcCiAJcHktcGFyYW0ubyBc CiAJcHktcHJldHR5cHJpbnQubyBcCkBAIC0zMTksNiArMzIwLDcgQEAgU1VC RElSX1BZVEhPTl9TUkNTID0gXAogCXB5dGhvbi9weS1pbmZlcmlvci5jIFwK IAlweXRob24vcHktaW5mdGhyZWFkLmMgXAogCXB5dGhvbi9weS1sYXp5LXN0 cmluZy5jIFwKKwlweXRob24vcHktbmV3b2JqZmlsZWV2ZW50LmMgXAogCXB5 dGhvbi9weS1vYmpmaWxlLmMgXAogCXB5dGhvbi9weS1wYXJhbS5jIFwKIAlw eXRob24vcHktcHJldHR5cHJpbnQuYyBcCkBAIC0yMTE1LDYgKzIxMTcsMTAg QEAgcHktbGF6eS1zdHJpbmcubzogJChzcmNkaXIpL3B5dGhvbi9weS1sYXp5 LXN0cmluZy5jCiAJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3Jj ZGlyKS9weXRob24vcHktbGF6eS1zdHJpbmcuYwogCSQoUE9TVENPTVBJTEUp CiAKK3B5LW5ld29iamZpbGVldmVudC5vOiAkKHNyY2RpcikvcHl0aG9uL3B5 LW5ld29iamZpbGVldmVudC5jCisJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxB R1MpICQoc3JjZGlyKS9weXRob24vcHktbmV3b2JqZmlsZWV2ZW50LmMKKwkk KFBPU1RDT01QSUxFKQorCiBweS1vYmpmaWxlLm86ICQoc3JjZGlyKS9weXRo b24vcHktb2JqZmlsZS5jCiAJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1Mp ICQoc3JjZGlyKS9weXRob24vcHktb2JqZmlsZS5jCiAJJChQT1NUQ09NUElM RSkKZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKaW5kZXggMjBl NThhMC4uNzg4NDk4ZiAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIvZ2Ri L05FV1MKQEAgLTQxLDYgKzQxLDggQEAKICAgKiogVGhlICJnZGIuYnJlYWtw b2ludCIgZnVuY3Rpb24gaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBv ZgogICAgICAiZ2RiLmJyZWFrcG9pbnRzIi4KIAorICAqKiBBIG5ldyBldmVu dCAiZ2RiLm5ld29iamZpbGUiIGhhcyBiZWVuIGFkZGVkLgorCiAqIGxpYnRo cmVhZC1kYi1zZWFyY2gtcGF0aCBub3cgc3VwcG9ydHMgdHdvIHNwZWNpYWwg dmFsdWVzOiAkc2RpciBhbmQgJHBkaXIuCiAgICRzZGlyIHNwZWNpZmllcyB0 aGUgZGVmYXVsdCBzeXN0ZW0gbG9jYXRpb25zIG9mIHNoYXJlZCBsaWJyYXJp ZXMuCiAgICRwZGlyIHNwZWNpZmllcyB0aGUgZGlyZWN0b3J5IHdoZXJlIHRo ZSBsaWJwdGhyZWFkIHVzZWQgYnkgdGhlIGFwcGxpY2F0aW9uCmRpZmYgLS1n aXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5m bwppbmRleCBkZDBmN2Y2Li41YmUwOTBmIDEwMDY0NAotLS0gYS9nZGIvZG9j L2dkYi50ZXhpbmZvCisrKyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KQEAgLTIy MzU4LDYgKzIyMzU4LDE3IEBAIGluIGZhdm9yIG9mIHRoZSBAY29kZXtnZGIu QnJlYWtwb2ludEV2ZW50LmJyZWFrcG9pbnRzfSBhdHRyaWJ1dGUuCiBAZW5k IGRlZnZhcgogQGVuZCB0YWJsZQogCitAaXRlbSBldmVudHMubmV3X29iamZp bGUKK0VtaXRzIEBjb2Rle2dkYi5OZXdPYmpGaWxlRXZlbnR9IHdoaWNoIGlu ZGljYXRlcyB0aGF0IGEgbmV3IG9iamVjdC1maWxlIGhhcworYmVlbiBsb2Fk ZWQgYnkgQHZhbHVle0dEQk59LiBAY29kZXtnZGIuTmV3T2JqRmlsZUV2ZW50 fSBoYXMgb25lIGF0dHJpYnV0ZToKKworQHRhYmxlIEBjb2RlCitAZGVmdmFy IE5ld09iakZpbGVFdmVudC5uZXdfb2JqZmlsZQorQSByZWZlcmVuY2UgdG8g dGhlIG9iamVjdCBmaWxlIChAY29kZXtnZGIuT2JqZmlsZX0pIHdoaWNoIGhh cyBiZWVuIGxvYWRlZC4KK0B4cmVme09iamZpbGVzIEluIFB5dGhvbn0sIGZv ciBkZXRhaWxzIG9mIHRoZSBAY29kZXtnZGIuT2JqZmlsZX0gb2JqZWN0Lgor QGVuZCBkZWZ2YXIKK0BlbmQgdGFibGUKKwogQGVuZCB0YWJsZQogCiBAbm9k ZSBUaHJlYWRzIEluIFB5dGhvbgpkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9w eS1ldmVudC5oIGIvZ2RiL3B5dGhvbi9weS1ldmVudC5oCmluZGV4IDQ5ZDdi NmEuLjcxNmFhYmQgMTAwNjQ0Ci0tLSBhL2dkYi9weXRob24vcHktZXZlbnQu aAorKysgYi9nZGIvcHl0aG9uL3B5LWV2ZW50LmgKQEAgLTExMSw2ICsxMTEs NyBAQCBleHRlcm4gaW50IGV2cHlfZW1pdF9ldmVudCAoUHlPYmplY3QgKmV2 ZW50LAogCiBleHRlcm4gUHlPYmplY3QgKmNyZWF0ZV9ldmVudF9vYmplY3Qg KFB5VHlwZU9iamVjdCAqcHlfdHlwZSk7CiBleHRlcm4gUHlPYmplY3QgKmNy ZWF0ZV90aHJlYWRfZXZlbnRfb2JqZWN0IChQeVR5cGVPYmplY3QgKnB5X3R5 cGUpOworZXh0ZXJuIGludCBlbWl0X25ld19vYmpmaWxlX2V2ZW50IChzdHJ1 Y3Qgb2JqZmlsZSAqb2JqZmlsZSk7CiAKIGV4dGVybiB2b2lkIGV2cHlfZGVh bGxvYyAoUHlPYmplY3QgKnNlbGYpOwogZXh0ZXJuIGludCBldnB5X2FkZF9h dHRyaWJ1dGUgKFB5T2JqZWN0ICpldmVudCwKZGlmZiAtLWdpdCBhL2dkYi9w eXRob24vcHktZXZlbnRzLmggYi9nZGIvcHl0aG9uL3B5LWV2ZW50cy5oCmlu ZGV4IGJkNTQ0MTguLjcwZjQ1YTQgMTAwNjQ0Ci0tLSBhL2dkYi9weXRob24v cHktZXZlbnRzLmgKKysrIGIvZ2RiL3B5dGhvbi9weS1ldmVudHMuaApAQCAt NDUsNiArNDUsNyBAQCB0eXBlZGVmIHN0cnVjdAogICBldmVudHJlZ2lzdHJ5 X29iamVjdCAqc3RvcDsKICAgZXZlbnRyZWdpc3RyeV9vYmplY3QgKmNvbnQ7 CiAgIGV2ZW50cmVnaXN0cnlfb2JqZWN0ICpleGl0ZWQ7CisgIGV2ZW50cmVn aXN0cnlfb2JqZWN0ICpuZXdvYmpmaWxlOwogCiAgIFB5T2JqZWN0ICptb2R1 bGU7CiAKZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktZXZ0cy5jIGIvZ2Ri L3B5dGhvbi9weS1ldnRzLmMKaW5kZXggNTBjMDVmMy4uYzI0YTA0YyAxMDA2 NDQKLS0tIGEvZ2RiL3B5dGhvbi9weS1ldnRzLmMKKysrIGIvZ2RiL3B5dGhv bi9weS1ldnRzLmMKQEAgLTU4LDYgKzU4LDkgQEAgZ2RicHlfaW5pdGlhbGl6 ZV9weV9ldmVudHMgKHZvaWQpCiAgIGlmIChhZGRfbmV3X3JlZ2lzdHJ5ICgm Z2RiX3B5X2V2ZW50cy5leGl0ZWQsICJleGl0ZWQiKSA8IDApCiAgICAgZ290 byBmYWlsOwogCisgIGlmIChhZGRfbmV3X3JlZ2lzdHJ5ICgmZ2RiX3B5X2V2 ZW50cy5uZXdvYmpmaWxlLCAibmV3X29iamZpbGUiKSA8IDApCisgICAgZ290 byBmYWlsOworCiAgIFB5X0lOQ1JFRiAoZ2RiX3B5X2V2ZW50cy5tb2R1bGUp OwogICBpZiAoUHlNb2R1bGVfQWRkT2JqZWN0IChnZGJfbW9kdWxlLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAiZXZlbnRzIiwKZGlmZiAtLWdpdCBh L2dkYi9weXRob24vcHktaW5mZXJpb3IuYyBiL2dkYi9weXRob24vcHktaW5m ZXJpb3IuYwppbmRleCAyNzVjYWVhLi5hZmMzZWIwIDEwMDY0NAotLS0gYS9n ZGIvcHl0aG9uL3B5LWluZmVyaW9yLmMKKysrIGIvZ2RiL3B5dGhvbi9weS1p bmZlcmlvci5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiZ2RiY29y ZS5oIgogI2luY2x1ZGUgImdkYnRocmVhZC5oIgogI2luY2x1ZGUgImluZmVy aW9yLmgiCisjaW5jbHVkZSAib2JqZmlsZXMuaCIKICNpbmNsdWRlICJvYnNl cnZlci5oIgogI2luY2x1ZGUgInB5dGhvbi1pbnRlcm5hbC5oIgogI2luY2x1 ZGUgImFyY2gtdXRpbHMuaCIKQEAgLTEyNSw2ICsxMjYsMjUgQEAgcHl0aG9u X2luZmVyaW9yX2V4aXQgKHN0cnVjdCBpbmZlcmlvciAqaW5mKQogICBkb19j bGVhbnVwcyAoY2xlYW51cCk7CiB9CiAKKy8qIENhbGxiYWNrIHVzZWQgdG8g bm90aWZ5IFB5dGhvbiBsaXN0ZW5lcnMgYWJvdXQgbmV3IG9iamZpbGVzIGxv YWRlZCBpbiB0aGUKKyAgIGluZmVyaW9yLiAgKi8KKworc3RhdGljIHZvaWQK K3B5dGhvbl9uZXdfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUp Cit7CisgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOworCisgIGlmIChvYmpm aWxlID09IE5VTEwpCisgICAgcmV0dXJuOworCisgIGNsZWFudXAgPSBlbnN1 cmVfcHl0aG9uX2VudiAoZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSksIGN1 cnJlbnRfbGFuZ3VhZ2UpOworCisgIGlmIChlbWl0X25ld19vYmpmaWxlX2V2 ZW50IChvYmpmaWxlKSA8IDApCisgICAgZ2RicHlfcHJpbnRfc3RhY2sgKCk7 CisKKyAgZG9fY2xlYW51cHMgKGNsZWFudXApOworfQorCiAvKiBSZXR1cm4g YSByZWZlcmVuY2UgdG8gdGhlIFB5dGhvbiBvYmplY3Qgb2YgdHlwZSBJbmZl cmlvcgogICAgcmVwcmVzZW50aW5nIElORkVSSU9SLiAgSWYgdGhlIG9iamVj dCBoYXMgYWxyZWFkeSBiZWVuIGNyZWF0ZWQsCiAgICByZXR1cm4gaXQgYW5k IGluY3JlbWVudCB0aGUgcmVmZXJlbmNlIGNvdW50LCAgb3RoZXJ3aXNlLCBj cmVhdGUgaXQuCkBAIC03MTUsNiArNzM1LDcgQEAgZ2RicHlfaW5pdGlhbGl6 ZV9pbmZlcmlvciAodm9pZCkKICAgb2JzZXJ2ZXJfYXR0YWNoX25vcm1hbF9z dG9wIChweXRob25fb25fbm9ybWFsX3N0b3ApOwogICBvYnNlcnZlcl9hdHRh Y2hfdGFyZ2V0X3Jlc3VtZWQgKHB5dGhvbl9vbl9yZXN1bWUpOwogICBvYnNl cnZlcl9hdHRhY2hfaW5mZXJpb3JfZXhpdCAocHl0aG9uX2luZmVyaW9yX2V4 aXQpOworICBvYnNlcnZlcl9hdHRhY2hfbmV3X29iamZpbGUgKHB5dGhvbl9u ZXdfb2JqZmlsZSk7CiAKICAgbWVtYnVmX29iamVjdF90eXBlLnRwX25ldyA9 IFB5VHlwZV9HZW5lcmljTmV3OwogICBpZiAoUHlUeXBlX1JlYWR5ICgmbWVt YnVmX29iamVjdF90eXBlKSA8IDApCmRpZmYgLS1naXQgYS9nZGIvcHl0aG9u L3B5LW5ld29iamZpbGVldmVudC5jIGIvZ2RiL3B5dGhvbi9weS1uZXdvYmpm aWxlZXZlbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5lOTcxNmE2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiL3B5dGhvbi9weS1u ZXdvYmpmaWxlZXZlbnQuYwpAQCAtMCwwICsxLDcwIEBACisvKiBQeXRob24g aW50ZXJmYWNlIHRvIG5ldyBvYmplY3QgZmlsZSBsb2FkaW5nIGV2ZW50cy4K KworICAgQ29weXJpZ2h0IChDKSAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCisK KyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpbmNsdWRlICJweS1l dmVudC5oIgorCitzdGF0aWMgUHlUeXBlT2JqZWN0IG5ld19vYmpmaWxlX2V2 ZW50X29iamVjdF90eXBlOworCitQeU9iamVjdCAqCitjcmVhdGVfbmV3X29i amZpbGVfZXZlbnRfb2JqZWN0IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkK K3sKKyAgUHlPYmplY3QgKm9iamZpbGVfZXZlbnQ7CisgIFB5T2JqZWN0ICpw eV9vYmpmaWxlOworCisgIG9iamZpbGVfZXZlbnQgPSBjcmVhdGVfZXZlbnRf b2JqZWN0ICgmbmV3X29iamZpbGVfZXZlbnRfb2JqZWN0X3R5cGUpOworICBp ZiAoIW9iamZpbGVfZXZlbnQpCisgICAgZ290byBmYWlsOworCisgIHB5X29i amZpbGUgPSBvYmpmaWxlX3RvX29iamZpbGVfb2JqZWN0IChvYmpmaWxlKTsK KyAgaWYgKCFweV9vYmpmaWxlIHx8IGV2cHlfYWRkX2F0dHJpYnV0ZSAob2Jq ZmlsZV9ldmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIm5ld19vYmpmaWxlIiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHlfb2JqZmlsZSkgPCAwKQorICAgIGdv dG8gZmFpbDsKKworICByZXR1cm4gb2JqZmlsZV9ldmVudDsKKworIGZhaWw6 CisgIFB5X1hERUNSRUYgKG9iamZpbGVfZXZlbnQpOworICByZXR1cm4gTlVM TDsKK30KKworLyogQ2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggbm90aWZpZXMg b2JzZXJ2ZXJzIHdoZW4gYSBuZXcgb2JqZmlsZSBldmVudCBvY2N1cnMuCisg ICBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIGEgbmV3IFB5dGhvbiBuZXdf b2JqZmlsZSBldmVudCBvYmplY3QuCisgICBSZXR1cm4gLTEgaWYgZW1pdCBm YWlscy4gICovCisKK2ludAorZW1pdF9uZXdfb2JqZmlsZV9ldmVudCAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUpCit7CisgIFB5T2JqZWN0ICpldmVudDsK KworICBpZiAoZXZyZWdweV9ub19saXN0ZW5lcnNfcCAoZ2RiX3B5X2V2ZW50 cy5uZXdvYmpmaWxlKSkKKyAgICByZXR1cm4gMDsKKworICBldmVudCA9IGNy ZWF0ZV9uZXdfb2JqZmlsZV9ldmVudF9vYmplY3QgKG9iamZpbGUpOworICBp ZiAoZXZlbnQpCisgICAgcmV0dXJuIGV2cHlfZW1pdF9ldmVudCAoZXZlbnQs IGdkYl9weV9ldmVudHMubmV3b2JqZmlsZSk7CisgIHJldHVybiAtMTsKK30K KworR0RCUFlfTkVXX0VWRU5UX1RZUEUgKG5ld19vYmpmaWxlLAorICAgICAg ICAgICAgICAgICAgICAgICJnZGIuTmV3T2JqRmlsZUV2ZW50IiwKKyAgICAg ICAgICAgICAgICAgICAgICAiTmV3T2JqRmlsZUV2ZW50IiwKKyAgICAgICAg ICAgICAgICAgICAgICAiR0RCIG5ldyBvYmplY3QgZmlsZSBldmVudCBvYmpl Y3QiLAorICAgICAgICAgICAgICAgICAgICAgIGV2ZW50X29iamVjdF90eXBl LAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpYyk7CmRpZmYgLS1naXQg YS9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oIGIvZ2RiL3B5dGhvbi9w eXRob24taW50ZXJuYWwuaAppbmRleCBiZmY0MGI1Li4zMWJjY2FhIDEwMDY0 NAotLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCisrKyBiL2dk Yi9weXRob24vcHl0aG9uLWludGVybmFsLmgKQEAgLTIxNCw2ICsyMTQsNyBA QCB2b2lkIGdkYnB5X2luaXRpYWxpemVfYnJlYWtwb2ludF9ldmVudCAodm9p ZCk7CiB2b2lkIGdkYnB5X2luaXRpYWxpemVfY29udGludWVfZXZlbnQgKHZv aWQpOwogdm9pZCBnZGJweV9pbml0aWFsaXplX2V4aXRlZF9ldmVudCAodm9p ZCk7CiB2b2lkIGdkYnB5X2luaXRpYWxpemVfdGhyZWFkX2V2ZW50ICh2b2lk KTsKK3ZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9uZXdfb2JqZmlsZV9ldmVudCAo dm9pZCk7CiAKIHN0cnVjdCBjbGVhbnVwICptYWtlX2NsZWFudXBfcHlfZGVj cmVmIChQeU9iamVjdCAqcHkpOwogCkBAIC0yMjIsNiArMjIzLDcgQEAgc3Ry dWN0IGNsZWFudXAgKmVuc3VyZV9weXRob25fZW52IChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwKIAogZXh0ZXJuIHN0cnVjdCBnZGJhcmNoICpweXRob25f Z2RiYXJjaDsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAq cHl0aG9uX2xhbmd1YWdlOworZXh0ZXJuIHN0cnVjdCBvYmpmaWxlICpnZGJw eV9jdXJyZW50X29iamZpbGU7CiAKIC8qIFVzZSB0aGlzIGFmdGVyIGEgVFJZ X0VYQ0VQVCB0byB0aHJvdyB0aGUgYXBwcm9wcmlhdGUgUHl0aG9uCiAgICBl eGNlcHRpb24uICAqLwpkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24u YyBiL2dkYi9weXRob24vcHl0aG9uLmMKaW5kZXggNjFjNTQyMC4uZjk1OTk1 YSAxMDA2NDQKLS0tIGEvZ2RiL3B5dGhvbi9weXRob24uYworKysgYi9nZGIv cHl0aG9uL3B5dGhvbi5jCkBAIC05MzgsOCArOTM4LDkgQEAgZ2RicHlfcHJv Z3NwYWNlcyAoUHlPYmplY3QgKnVudXNlZDEsIFB5T2JqZWN0ICp1bnVzZWQy KQogCiAvKiBUaGUgImN1cnJlbnQiIG9iamZpbGUuICBUaGlzIGlzIHNldCB3 aGVuIGdkYiBkZXRlY3RzIHRoYXQgYSBuZXcKICAgIG9iamZpbGUgaGFzIGJl ZW4gbG9hZGVkLiAgSXQgaXMgb25seSBzZXQgZm9yIHRoZSBkdXJhdGlvbiBv ZiBhIGNhbGwgdG8KLSAgIHNvdXJjZV9weXRob25fc2NyaXB0X2Zvcl9vYmpm aWxlOyBpdCBpcyBOVUxMIGF0IG90aGVyIHRpbWVzLiAgKi8KLXN0YXRpYyBz dHJ1Y3Qgb2JqZmlsZSAqZ2RicHlfY3VycmVudF9vYmpmaWxlOworICAgc291 cmNlX3B5dGhvbl9zY3JpcHRfZm9yX29iamZpbGUgYW5kIG5ld19vYmpmaWxl IGNhbGxiYWNrczsgaXQgaXMgTlVMTCBhdAorICAgb3RoZXIgdGltZXMuICAq Lworc3RydWN0IG9iamZpbGUgKmdkYnB5X2N1cnJlbnRfb2JqZmlsZTsKIAog LyogU2V0IHRoZSBjdXJyZW50IG9iamZpbGUgdG8gT0JKRklMRSBhbmQgdGhl biByZWFkIFNUUkVBTSxGSUxFIGFzCiAgICBQeXRob24gY29kZS4KQEAgLTEy NTcsNiArMTI1OCw3IEBAIEVuYWJsZXMgb3IgZGlzYWJsZXMgcHJpbnRpbmcg b2YgUHl0aG9uIHN0YWNrIHRyYWNlcy4iKSwKICAgZ2RicHlfaW5pdGlhbGl6 ZV9jb250aW51ZV9ldmVudCAoKTsKICAgZ2RicHlfaW5pdGlhbGl6ZV9leGl0 ZWRfZXZlbnQgKCk7CiAgIGdkYnB5X2luaXRpYWxpemVfdGhyZWFkX2V2ZW50 ICgpOworICBnZGJweV9pbml0aWFsaXplX25ld19vYmpmaWxlX2V2ZW50ICgp IDsKIAogICBvYnNlcnZlcl9hdHRhY2hfYmVmb3JlX3Byb21wdCAoYmVmb3Jl X3Byb21wdF9ob29rKTsKIApkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIucHl0aG9uL3B5LWV2ZW50cy1zaGxpYi5jIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIucHl0aG9uL3B5LWV2ZW50cy1zaGxpYi5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjJhMTdiYmYKLS0tIC9kZXYvbnVsbAorKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZXZlbnRzLXNobGliLmMK QEAgLTAsMCArMSwyMCBAQAorLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9m IEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKworICAgQ29weXJpZ2h0IDIwMTEg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAg IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCisKKwordm9pZCBkb19ub3RoaW5nICh2b2lkKSB7 fQorCmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt ZXZlbnRzLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZXZlbnRz LmMKaW5kZXggNjY1Y2E1MS4uYzIwY2M4NCAxMDA2NDQKLS0tIGEvZ2RiL3Rl c3RzdWl0ZS9nZGIucHl0aG9uL3B5LWV2ZW50cy5jCisrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1ldmVudHMuYwpAQCAtMTYsNiArMTYsOCBA QAogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSAg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogKi8KIAorZXh0ZXJu IHZvaWQgZG9fbm90aGluZyAodm9pZCk7CisKIGludCBzZWNvbmQoKXsKICAg Zm9yaygpIDsKICAgcmV0dXJuIDEyOwpAQCAtMjYsNSArMjgsNiBAQCBpbnQg Zmlyc3QoKXsKIH0KIAogaW50IG1haW4gKCl7CisgIGRvX25vdGhpbmcoKTsK ICAgcmV0dXJuIGZpcnN0KCk7CiB9CmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktZXZlbnRzLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weS1ldmVudHMuZXhwCmluZGV4IDE4NDE5ZmEuLmU0MjAz ODkgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1l dmVudHMuZXhwCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1l dmVudHMuZXhwCkBAIC0xOSwyMyArMTksMzkgQEAgaWYgJHRyYWNlbGV2ZWwg dGhlbiB7CiAKIGxvYWRfbGliIGdkYi1weXRob24uZXhwCiAKK3NldCBsaWJm aWxlICJweS1ldmVudHMtc2hsaWIiCitzZXQgbGlic3JjICAkc3JjZGlyLyRz dWJkaXIvJGxpYmZpbGUuYworc2V0IGxpYl9zbCAgJG9iamRpci8kc3ViZGly LyRsaWJmaWxlLnNvCitzZXQgbGliX29wdHMgIGRlYnVnCisKIHNldCB0ZXN0 ZmlsZSAicHktZXZlbnRzIgogc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYwog c2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQor c2V0IGV4ZWNfb3B0cyBbbGlzdCBkZWJ1ZyBzaGxpYj0kbGliX3NsXQogc2V0 IHB5ZmlsZSAke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LnB5CiAK LWlmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7 dGVzdGZpbGV9ICR7c3JjZmlsZX1dIH0geworaWYgW2dldF9jb21waWxlcl9p bmZvICR7YmluZmlsZX1dIHsKICAgICByZXR1cm4gLTEKIH0KIAoraWYgeyBb Z2RiX2NvbXBpbGVfc2hsaWIgJGxpYnNyYyAkbGliX3NsICRsaWJfb3B0c10g IT0gIiIKKyAgICAgfHwgW2dkYl9jb21waWxlICRzcmNkaXIvJHN1YmRpci8k c3JjZmlsZSAkYmluZmlsZSBleGVjdXRhYmxlICRleGVjX29wdHNdICE9ICIi fSB7CisgICAgdW50ZXN0ZWQgIkNvdWxkIG5vdCBjb21waWxlIGVpdGhlciAk bGlic3JjIG9yICRzcmNkaXIvJHN1YmRpci8kc3JjZmlsZS4iCisgICAgcmV0 dXJuIC0xCit9CisKKyMgU3RhcnQgd2l0aCBhIGZyZXNoIGdkYi4KK2NsZWFu X3Jlc3RhcnQgJHt0ZXN0ZmlsZX0KKwogaWYgeyBbc2tpcF9weXRob25fdGVz dHNdIH0geyBjb250aW51ZSB9CiAKIGdkYl90ZXN0X25vX291dHB1dCAicHl0 aG9uIGV4ZWNmaWxlICgnJHtweWZpbGV9JykiICIiCiAKLWlmICFbcnVudG9f bWFpbiBdIHRoZW4gewotICAgIGZhaWwgIkNhbid0IHJ1biB0byBtYWluIgot ICAgIHJldHVybiAtMQotfQorZ2RiX3Rlc3QgIlRlc3RfTmV3b2JqX0V2ZW50 cyIgIk5ldyBPYmplY3RGaWxlIEV2ZW50IHRlc3RlciByZWdpc3RlcmVkLiIg IlJlZ2lzdGVyIG5ldyBvYmpmaWxlIGV2ZW50IGhhbmRsZXIiCisKK2dkYl9i cmVha3BvaW50ICJtYWluIiB7dGVtcG9yYXJ5fQorCitnZGJfdGVzdCAicnVu IiAiLipldmVudCB0eXBlOiBuZXdfb2JqZmlsZS4qbmV3IG9iamZpbGUgbmFt ZS4qIiAiTmV3IG9iamZpbGUgbm90aWZpY2F0aW9uIgogCiBnZGJfdGVzdF9u b19vdXRwdXQgInNldCBkZXRhY2gtb24tZm9yayBvZmYiICIiCiAKZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1ldmVudHMucHkg Yi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZXZlbnRzLnB5CmluZGV4 IDZiZGQ5MzUuLmFiNTQ5YzQgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weS1ldmVudHMucHkKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIucHl0aG9uL3B5LWV2ZW50cy5weQpAQCAtNTEsNiArNTEsMTQgQEAgZGVm IGNvbnRpbnVlX2hhbmRsZXIgKGV2ZW50KToKICAgICBpZiAoIGV2ZW50Lmlu ZmVyaW9yX3RocmVhZCBpcyBub3QgTm9uZSkgOgogICAgICAgICBwcmludCAi dGhyZWFkIG51bTogJXMiICUgKGV2ZW50LmluZmVyaW9yX3RocmVhZC5udW0p OwogCitkZWYgbmV3X29iamZpbGVfaGFuZGxlciAoZXZlbnQpOgorICAgIGlm IChpc2luc3RhbmNlIChldmVudCwgZ2RiLk5ld09iakZpbGVFdmVudCkpOgor ICAgICAgICBwcmludCAiZXZlbnQgdHlwZTogbmV3X29iamZpbGUiCisgICAg aWYgKGV2ZW50Lm5ld19vYmpmaWxlIGlzIG5vdCBOb25lKToKKyAgICAJcHJp bnQgIm5ldyBvYmpmaWxlIG5hbWU6ICVzIiAlIChldmVudC5uZXdfb2JqZmls ZS5maWxlbmFtZSkKKyAgICBlbHNlOgorICAgICAgICBwcmludCAibmV3IG9i amZpbGUgaXMgTm9uZSIKKwogY2xhc3MgdGVzdF9ldmVudHMgKGdkYi5Db21t YW5kKToKICAgICAiIiJUZXN0IGV2ZW50cy4iIiIKIApAQCAtNjUsMyArNzMs MTUgQEAgY2xhc3MgdGVzdF9ldmVudHMgKGdkYi5Db21tYW5kKToKICAgICAg ICAgcHJpbnQgIkV2ZW50IHRlc3RlcnMgcmVnaXN0ZXJlZC4iCiAKIHRlc3Rf ZXZlbnRzICgpCisKK2NsYXNzIHRlc3RfbmV3b2JqX2V2ZW50cyAoZ2RiLkNv bW1hbmQpOgorICAgICIiIk5ld09iaiBldmVudHMuIiIiCisKKyAgICBkZWYg X19pbml0X18gKHNlbGYpOgorICAgICAgICBnZGIuQ29tbWFuZC5fX2luaXRf XyAoc2VsZiwgInRlc3RfbmV3b2JqX2V2ZW50cyIsIGdkYi5DT01NQU5EX1NU QUNLKQorCisgICAgZGVmIGludm9rZSAoc2VsZiwgYXJnLCBmcm9tX3R0eSk6 CisgICAgICAgIGdkYi5ldmVudHMubmV3X29iamZpbGUuY29ubmVjdCAobmV3 X29iamZpbGVfaGFuZGxlcikKKyAgICAgICAgcHJpbnQgIk5ldyBPYmplY3RG aWxlIEV2ZW50IHRlc3RlciByZWdpc3RlcmVkLiIKKwordGVzdF9uZXdvYmpf ZXZlbnRzICgpCi0tIAoxLjcuNi4yCgo= --bcaec517ac6a04ebaa04ae8b425a--