From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29749 invoked by alias); 30 May 2014 22:59:25 -0000 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 Received: (qmail 29733 invoked by uid 89); 30 May 2014 22:59:25 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-wi0-f179.google.com Received: from mail-wi0-f179.google.com (HELO mail-wi0-f179.google.com) (209.85.212.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Fri, 30 May 2014 22:59:03 +0000 Received: by mail-wi0-f179.google.com with SMTP id bs8so1966900wib.6 for ; Fri, 30 May 2014 15:59:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=AtW2makSYLowgxT6GgT8e5tUOWaO/z/0ishZOiZsy/k=; b=ahFrx2Z2BHvAc1rDZ4wVRZ2U+0q1rXeJLMo8MWMC065SC423rnqkeVsoBEM3m0XHm8 EqmrAb7O0R+H/1y/vkqzfxx731EpRC71cLiqu8z4gRTXRwRE+zmrS3Jn7SWT0vu527yA f25eOw6BfLONv4fBT2JvgehXmC/sXMUzWjwU+uGFQOxjUvr0hjM53hJ5qpAIPkIzeskL dJeTMoCycJkoG1caaT54zc0b1r4hSp+IRVwfGPJVNbi/I4/30fMHiQJ4iwyJuaJTqjZX v0WBh6rUodDm7OhhPE4aIW1SbQSGl4p8wplMM/2bbd37/mFA4y9sZvt3x+SsMFsEy1Yu FaIg== X-Gm-Message-State: ALoCoQkqRUo9NCWKojV3DzRTz3o2vEG8k6+uF0RvV/R8ZXW7IFJr0VlSo3ojwmZBO2axUXIeIf4q MIME-Version: 1.0 X-Received: by 10.194.249.134 with SMTP id yu6mr27193405wjc.86.1401490740733; Fri, 30 May 2014 15:59:00 -0700 (PDT) Received: by 10.217.51.7 with HTTP; Fri, 30 May 2014 15:59:00 -0700 (PDT) Date: Fri, 30 May 2014 22:59:00 -0000 Message-ID: Subject: [PATCH 2/4 v19] Add xmethod interface to the extension language API From: Siva Chandra To: gdb-patches Content-Type: multipart/mixed; boundary=001a11c1b2cac219fc04faa5fd0c X-IsSubscribed: yes X-SW-Source: 2014-05/txt/msg00763.txt.bz2 --001a11c1b2cac219fc04faa5fd0c Content-Type: text/plain; charset=UTF-8 Content-length: 1836 Small change around the invoke_method API as compared to v18. Patch attached. ChangeLog 2014-05-30 Siva Chandra Reddy * defs.h (enum lval_type): New enumerator "lval_xcallable". * extension-priv.h (struct extension_language_ops): Add the xmethod interface. * extension.c (new_xmethod_worker, clone_xmethod_worker, get_matching_xmethod_workers, get_xmethod_argtypes, invoke_xmethod, free_xmethod_worker, free_xmethod_worker_vec): New functions. * extension.h: #include "common/vec.h". New function declarations. (struct xmethod_worker): New struct. (VEC (xmethod_worker_ptr)): New vector type. (xmethod_worker_ptr): New typedef. (xmethod_worker_vec): Likewise. * gdbtypes.c (gdbtypes_post_init): Initialize "xmethod" field of builtin_type. * gdbtypes.h (enum type_code): New enumerator TYPE_CODE_XMETHOD. (struct builtin_type): New field "xmethod". * valarith.c (value_ptradd): Assert that the value argument is not lval_xcallable. * valops.c (value_must_coerce_to_target): Return 0 for lval_xcallable values. * value.c (struct value): New field XM_WORKER in the field LOCATION. (value_address, value_raw_address): Return 0 for lval_xcallable values. (set_value_address): Assert that the value is not an lval_xcallable. (value_free): Free the associated xmethod worker when freeing lval_xcallable values. (set_value_component_location): Assert that the WHOLE value is not lval_xcallable. (value_of_xmethod, call_xmethod): New functions. * value.h: Declare "struct xmethod_worker". Declare new functions value_of_xmethod, call_xmethod. --001a11c1b2cac219fc04faa5fd0c Content-Type: text/plain; charset=US-ASCII; name="xmethod_extention_language_api_v19.txt" Content-Disposition: attachment; filename="xmethod_extention_language_api_v19.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hvu3dxqx0 Content-length: 21220 ZGlmZiAtLWdpdCBhL2dkYi9kZWZzLmggYi9nZGIvZGVmcy5oCmluZGV4IDQ3 ZGE0M2EuLmI3ZTlmZjQgMTAwNjQ0Ci0tLSBhL2dkYi9kZWZzLmgKKysrIGIv Z2RiL2RlZnMuaApAQCAtMzg4LDYgKzM4OCw4IEBAIGVudW0gbHZhbF90eXBl CiAgICAgbHZhbF9yZWdpc3RlciwKICAgICAvKiAqIEluIGEgZ2RiIGludGVy bmFsIHZhcmlhYmxlLiAgKi8KICAgICBsdmFsX2ludGVybmFsdmFyLAorICAg IC8qICogVmFsdWUgZW5jYXBzdWxhdGVzIGEgY2FsbGFibGUgZGVmaW5lZCBp biBhbiBleHRlbnNpb24gbGFuZ3VhZ2UuICAqLworICAgIGx2YWxfeGNhbGxh YmxlLAogICAgIC8qICogUGFydCBvZiBhIGdkYiBpbnRlcm5hbCB2YXJpYWJs ZSAoc3RydWN0dXJlIGZpZWxkKS4gICovCiAgICAgbHZhbF9pbnRlcm5hbHZh cl9jb21wb25lbnQsCiAgICAgLyogKiBWYWx1ZSdzIGJpdHMgYXJlIGZldGNo ZWQgYW5kIHN0b3JlZCB1c2luZyBmdW5jdGlvbnMgcHJvdmlkZWQKZGlmZiAt LWdpdCBhL2dkYi9leHRlbnNpb24tcHJpdi5oIGIvZ2RiL2V4dGVuc2lvbi1w cml2LmgKaW5kZXggOWU2M2E5Yy4uOTIzNzI3MyAxMDA2NDQKLS0tIGEvZ2Ri L2V4dGVuc2lvbi1wcml2LmgKKysrIGIvZ2RiL2V4dGVuc2lvbi1wcml2LmgK QEAgLTI1Niw2ICsyNTYsNTIgQEAgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFn ZV9vcHMKICAgICAgY2hhbmdlZCBvciBhbiBlcnJvciBvY2N1cnMgbm8gZnVy dGhlciBsYW5ndWFnZXMgYXJlIGNhbGxlZC4gICovCiAgIGVudW0gZXh0X2xh bmdfcmMgKCpiZWZvcmVfcHJvbXB0KSAoY29uc3Qgc3RydWN0IGV4dGVuc2lv bl9sYW5ndWFnZV9kZWZuICosCiAJCQkJICAgICBjb25zdCBjaGFyICpjdXJy ZW50X2dkYl9wcm9tcHQpOworCisgIC8qIHhtZXRob2Qgc3VwcG9ydDoKKyAg ICAgY2xvbmVfeG1ldGhvZF93b3JrZXJfZGF0YSwgZnJlZV94bWV0aG9kX3dv cmtlcl9kYXRhLAorICAgICBnZXRfbWF0Y2hpbmdfeG1ldGhvZF93b3JrZXJz LCBnZXRfeG1ldGhvZF9hcmdfdHlwZXMsCisgICAgIGludm9rZV94bWV0aG9k LgorICAgICBUaGVzZSBtZXRob2RzIGFyZSBvcHRpb25hbCBhbmQgbWF5IGJl IE5VTEwsIGJ1dCBpZiBvbmUgb2YgdGhlbSBpcworICAgICBpbXBsZW1lbnRl ZCB0aGVuIHRoZXkgYWxsIG11c3QgYmUuICAqLworCisgIC8qIENsb25lIERB VEEgYW5kIHJldHVybiBhIG5ldyBidXQgaWRlbnRpY2FsIHhtZXRob2Qgd29y a2VyIGRhdGEKKyAgICAgb2JqZWN0IGZvciB0aGlzIGV4dGVuc2lvbiBsYW5n dWFnZS4gICovCisgIHZvaWQgKiAoKmNsb25lX3htZXRob2Rfd29ya2VyX2Rh dGEpCisgICAgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVm biAqZXh0bGFuZywgdm9pZCAqZGF0YSk7CisKKyAgLyogRnJlZSB0aGUgREFU QSBvYmplY3Qgb2YgdGhpcyBleHRlbnNpb24gbGFuZ3VhZ2UuICAqLworICB2 b2lkICgqZnJlZV94bWV0aG9kX3dvcmtlcl9kYXRhKQorICAgIChjb25zdCBz dHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKmV4dGxhbmcsIHZvaWQg KmRhdGEpOworCisgIC8qIFJldHVybiBhIHZlY3RvciBvZiBtYXRjaGluZyB4 bWV0aG9kIHdvcmtlcnMgZGVmaW5lZCBpbiB0aGlzCisgICAgIGV4dGVuc2lv biBsYW5ndWFnZS4gIFRoZSB3b3JrZXJzIHNlcnZpY2UgbWV0aG9kcyB3aXRo IG5hbWUKKyAgICAgTUVUSE9EX05BTUUgb24gb2JqZWN0cyBvZiB0eXBlIE9C Sl9UWVBFLiAgVGhlIHZlY3RvciBpcyByZXR1cm5lZAorICAgICBpbiBETV9W RUMuICAqLworICBlbnVtIGV4dF9sYW5nX3JjICgqZ2V0X21hdGNoaW5nX3ht ZXRob2Rfd29ya2VycykKKyAgICAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9s YW5ndWFnZV9kZWZuICpleHRsYW5nLAorICAgICBzdHJ1Y3QgdHlwZSAqb2Jq X3R5cGUsCisgICAgIGNvbnN0IGNoYXIgKm1ldGhvZF9uYW1lLAorICAgICB4 bWV0aG9kX3dvcmtlcl92ZWMgKipkbV92ZWMpOworCisgIC8qIEdpdmVuIGEg V09SS0VSIHNlcnZpY2luZyBhIHBhcnRpY3VsYXIgbWV0aG9kLCByZXR1cm4g dGhlIHR5cGVzCisgICAgIG9mIHRoZSBhcmd1bWVudHMgdGhlIG1ldGhvZCB0 YWtlcy4gIFRoZSBudW1iZXIgb2YgYXJndW1lbnRzIGlzCisgICAgIHJldHVy bmVkIGluIE5BUkdTLCBhbmQgdGhlaXIgdHlwZXMgYXJlIHJldHVybmVkIGlu IHRoZSBhcnJheQorICAgICBBUkdUWVBFUy4gICovCisgIGVudW0gZXh0X2xh bmdfcmMgKCpnZXRfeG1ldGhvZF9hcmdfdHlwZXMpCisgICAgKGNvbnN0IHN0 cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqZXh0bGFuZywKKyAgICAg c3RydWN0IHhtZXRob2Rfd29ya2VyICp3b3JrZXIsCisgICAgIGludCAqbmFy Z3MsCisgICAgIHN0cnVjdCB0eXBlICoqKmFyZ190eXBlcyk7CisKKyAgLyog SW52b2tlIHRoZSB4bWV0aG9kIHNlcnZpY2VkIGJ5IFdPUktFUi4gIFRoZSB4 bWV0aG9kIGlzIGludm9rZWQKKyAgICAgb24gT0JKRUNUIHdpdGggYXJndW1l bnRzIGluIHRoZSBhcnJheSBBUkdTLiAgTkFSR1MgaXMgdGhlIGxlbmd0aCBv ZgorICAgICB0aGlzIGFycmF5LiAgUmV0dXJucyB0aGUgdmFsdWUgcmV0dXJu ZWQgYnkgdGhlIHhtZXRob2QuICAqLworICBzdHJ1Y3QgdmFsdWUgKiAoKmlu dm9rZV94bWV0aG9kKQorICAgIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xh bmd1YWdlX2RlZm4gKmV4dGxhbmcsCisgICAgIHN0cnVjdCB4bWV0aG9kX3dv cmtlciAqd29ya2VyLAorICAgICBzdHJ1Y3QgdmFsdWUgKm9iamVjdCwKKyAg ICAgc3RydWN0IHZhbHVlICoqYXJncywKKyAgICAgaW50IG5hcmdzKTsKIH07 CiAKIC8qIFN0YXRlIG5lY2Vzc2FyeSB0byByZXN0b3JlIGEgc2lnbmFsIGhh bmRsZXIgdG8gaXRzIHByZXZpb3VzIHZhbHVlLiAgKi8KZGlmZiAtLWdpdCBh L2dkYi9leHRlbnNpb24uYyBiL2dkYi9leHRlbnNpb24uYwppbmRleCAxMTQ2 Y2M3Li45MzM1OWM1IDEwMDY0NAotLS0gYS9nZGIvZXh0ZW5zaW9uLmMKKysr IGIvZ2RiL2V4dGVuc2lvbi5jCkBAIC04MzQsNiArODM0LDE2MCBAQCBjaGVj a19xdWl0X2ZsYWcgKHZvaWQpCiAgIHJldHVybiByZXN1bHQ7CiB9CiAMCisv KiB4bWV0aG9kIHN1cHBvcnQuICAqLworCisvKiBUaGUgeG1ldGhvZCBBUEkg cm91dGluZXMgZG8gbm90IGhhdmUgImV4dF9sYW5nIiBpbiB0aGUgbmFtZSBi ZWNhdXNlCisgICB0aGUgbmFtZSAieG1ldGhvZCIgaW1wbGllcyB0aGF0IHRo aXMgcm91dGluZSBkZWFscyB3aXRoIGV4dGVuc2lvbgorICAgbGFuZ3VhZ2Vz LiAgUGx1cyBzb21lIG9mIHRoZSBtZXRob2RzIHRha2UgYSB4bWV0aG9kX2Zv byAqICJzZWxmL3RoaXMiCisgICBhcmcsIG5vdCBhbiBleHRlbnNpb25fbGFu Z3VhZ2VfZGVmbiAqIGFyZy4gICovCisKKy8qIFJldHVybnMgYSBuZXcgeG1l dGhvZF93b3JrZXIgd2l0aCBFWFRMQU5HIGFuZCBEQVRBLiAgU3BhY2UgZm9y IHRoZQorICAgcmVzdWx0IG11c3QgYmUgZnJlZWQgd2l0aCBmcmVlX3htZXRo b2Rfd29ya2VyLiAgKi8KKworc3RydWN0IHhtZXRob2Rfd29ya2VyICoKK25l d194bWV0aG9kX3dvcmtlciAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5n dWFnZV9kZWZuICpleHRsYW5nLCB2b2lkICpkYXRhKQoreworICBzdHJ1Y3Qg eG1ldGhvZF93b3JrZXIgKndvcmtlciA9IFhDTkVXIChzdHJ1Y3QgeG1ldGhv ZF93b3JrZXIpOworCisgIHdvcmtlci0+ZXh0bGFuZyA9IGV4dGxhbmc7Cisg IHdvcmtlci0+ZGF0YSA9IGRhdGE7CisgIHdvcmtlci0+dmFsdWUgPSBOVUxM OworCisgIHJldHVybiB3b3JrZXI7Cit9CisKKy8qIENsb25lcyBXT1JLRVIg YW5kIHJldHVybnMgYSBuZXcgYnV0IGlkZW50aWNhbCB3b3JrZXIuCisgICBU aGUgZnVuY3Rpb24gZ2V0X21hdGNoaW5nX3htZXRob2Rfd29ya2VycyAoc2Vl IGJlbG93KSwgcmV0dXJucyBhCisgICB2ZWN0b3Igb2YgbWF0Y2hpbmcgd29y a2Vycy4gIElmIGEgcGFydGljdWxhciB3b3JrZXIgaXMgc2VsZWN0ZWQgYnkg R0RCCisgICB0byBpbnZva2UgYSBtZXRob2QsIHRoZW4gdGhpcyBmdW5jdGlv biBjYW4gaGVscCBpbiBjbG9uaW5nIHRoZQorICAgc2VsZWN0ZWQgd29ya2Vy IGFuZCBmcmVlaW5nIHVwIHRoZSB2ZWN0b3IgdmlhIGEgY2xlYW51cC4KKwor ICAgU3BhY2UgZm9yIHRoZSByZXN1bHQgbXVzdCBiZSBmcmVlZCB3aXRoIGZy ZWVfeG1ldGhvZF93b3JrZXIuICAqLworCitzdHJ1Y3QgeG1ldGhvZF93b3Jr ZXIgKgorY2xvbmVfeG1ldGhvZF93b3JrZXIgKHN0cnVjdCB4bWV0aG9kX3dv cmtlciAqd29ya2VyKQoreworICBzdHJ1Y3QgeG1ldGhvZF93b3JrZXIgKm5l d193b3JrZXI7CisgIGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2Vf ZGVmbiAqZXh0bGFuZyA9IHdvcmtlci0+ZXh0bGFuZzsKKworICBnZGJfYXNz ZXJ0IChleHRsYW5nLT5vcHMtPmNsb25lX3htZXRob2Rfd29ya2VyX2RhdGEg IT0gTlVMTCk7CisKKyAgbmV3X3dvcmtlciA9IG5ld194bWV0aG9kX3dvcmtl cgorICAgIChleHRsYW5nLAorICAgICBleHRsYW5nLT5vcHMtPmNsb25lX3ht ZXRob2Rfd29ya2VyX2RhdGEgKGV4dGxhbmcsIHdvcmtlci0+ZGF0YSkpOwor CisgIHJldHVybiBuZXdfd29ya2VyOworfQorCisvKiBJZiBhIG1ldGhvZCB3 aXRoIG5hbWUgTUVUSE9EX05BTUUgaXMgdG8gYmUgaW52b2tlZCBvbiBhbiBv YmplY3Qgb2YgdHlwZQorICAgVFlQRSwgdGhlbiBhbGwgZW50ZW5zaW9uIGxh bmd1YWdlcyBhcmUgc2VhcmNoZWQgZm9yIGltcGxlbWVudGF0aW9ucyBvZgor ICAgbWV0aG9kcyB3aXRoIG5hbWUgTUVUSE9ELiAgQWxsIG1hdGNoZXMgZm91 bmQgYXJlIHJldHVybmVkIGFzIGEgdmVjdG9yCisgICBvZiAneG1ldGhvZF93 b3JrZXJfcHRyJyBvYmplY3RzLiAgSWYgbm8gbWF0Y2hpbmcgbWV0aG9kcyBh cmUKKyAgIGZvdW5kLCBOVUxMIGlzIHJldHVybmVkLiAgKi8KKworVkVDICh4 bWV0aG9kX3dvcmtlcl9wdHIpICoKK2dldF9tYXRjaGluZ194bWV0aG9kX3dv cmtlcnMgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBjaGFyICptZXRob2Rf bmFtZSkKK3sKKyAgVkVDICh4bWV0aG9kX3dvcmtlcl9wdHIpICp3b3JrZXJz ID0gTlVMTDsKKyAgaW50IGk7CisgIGNvbnN0IHN0cnVjdCBleHRlbnNpb25f bGFuZ3VhZ2VfZGVmbiAqZXh0bGFuZzsKKworICBBTExfRU5BQkxFRF9FWFRF TlNJT05fTEFOR1VBR0VTIChpLCBleHRsYW5nKQorICAgIHsKKyAgICAgIFZF QyAoeG1ldGhvZF93b3JrZXJfcHRyKSAqbGFuZ193b3JrZXJzLCAqbmV3X3Zl YzsKKyAgICAgIGVudW0gZXh0X2xhbmdfcmMgcmM7CisKKyAgICAgIC8qIElm IGFuIGV4dGVuc2lvbiBsYW5ndWFnZSBkb2VzIG5vdCBzdXBwb3J0IHhtZXRo b2RzLCBpZ25vcmUKKwkgaXQuICAqLworICAgICAgaWYgKGV4dGxhbmctPm9w cy0+Z2V0X21hdGNoaW5nX3htZXRob2Rfd29ya2VycyA9PSBOVUxMKQorCWNv bnRpbnVlOworCisgICAgICByYyA9IGV4dGxhbmctPm9wcy0+Z2V0X21hdGNo aW5nX3htZXRob2Rfd29ya2VycyAoZXh0bGFuZywKKwkJCQkJCSAgICAgICB0 eXBlLCBtZXRob2RfbmFtZSwKKwkJCQkJCSAgICAgICAmbGFuZ193b3JrZXJz KTsKKyAgICAgIGlmIChyYyA9PSBFWFRfTEFOR19SQ19FUlJPUikKKwl7CisJ ICBmcmVlX3htZXRob2Rfd29ya2VyX3ZlYyAod29ya2Vycyk7CisJICBlcnJv ciAoXygiRXJyb3Igd2hpbGUgbG9va2luZyBmb3IgbWF0Y2hpbmcgeG1ldGhv ZCB3b3JrZXJzICIKKwkJICAgImRlZmluZWQgaW4gJXMuIiksIGV4dGxhbmct PmNhcGl0YWxpemVkX25hbWUpOworCX0KKworICAgICAgbmV3X3ZlYyA9IFZF Q19tZXJnZSAoeG1ldGhvZF93b3JrZXJfcHRyLCB3b3JrZXJzLCBsYW5nX3dv cmtlcnMpOworICAgICAgLyogRnJlZSBvbmx5IHRoZSB2ZWN0b3JzIGFuZCBu b3QgdGhlIGVsZW1lbnRzIGFzIE5FV19WRUMgc3RpbGwKKwkgY29udGFpbnMg dGhlbS4gICovCisgICAgICBWRUNfZnJlZSAoeG1ldGhvZF93b3JrZXJfcHRy LCB3b3JrZXJzKTsKKyAgICAgIFZFQ19mcmVlICh4bWV0aG9kX3dvcmtlcl9w dHIsIGxhbmdfd29ya2Vycyk7CisgICAgICB3b3JrZXJzID0gbmV3X3ZlYzsK KyAgICB9CisKKyAgcmV0dXJuIHdvcmtlcnM7Cit9CisKKy8qIFJldHVybiB0 aGUgYXJnIHR5cGVzIG9mIHRoZSB4bWV0aG9kIGVuY2Fwc3VsYXRlZCBpbiBX T1JLRVIuCisgICBBbiBhcnJheSBvZiBhcmcgdHlwZXMgaXMgcmV0dXJuZWQu ICBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBpcyByZXR1cm5lZCBpbgorICAg TkFSR1MuICBUaGUgdHlwZSBvZiB0aGUgJ3RoaXMnIG9iamVjdCBpcyByZXR1 cm5lZCBhcyB0aGUgZmlyc3QgZWxlbWVudCBvZgorICAgYXJyYXkuICAqLwor CitzdHJ1Y3QgdHlwZSAqKgorZ2V0X3htZXRob2RfYXJnX3R5cGVzIChzdHJ1 Y3QgeG1ldGhvZF93b3JrZXIgKndvcmtlciwgaW50ICpuYXJncykKK3sKKyAg ZW51bSBleHRfbGFuZ19yYyByYzsKKyAgc3RydWN0IHR5cGUgKip0eXBlX2Fy cmF5ID0gTlVMTDsKKyAgY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFn ZV9kZWZuICpleHRsYW5nID0gd29ya2VyLT5leHRsYW5nOworCisgIGdkYl9h c3NlcnQgKGV4dGxhbmctPm9wcy0+Z2V0X3htZXRob2RfYXJnX3R5cGVzICE9 IE5VTEwpOworCisgIHJjID0gZXh0bGFuZy0+b3BzLT5nZXRfeG1ldGhvZF9h cmdfdHlwZXMgKGV4dGxhbmcsIHdvcmtlciwgbmFyZ3MsCisJCQkJCSAgICAm dHlwZV9hcnJheSk7CisgIGlmIChyYyA9PSBFWFRfTEFOR19SQ19FUlJPUikK KyAgICB7CisgICAgICBlcnJvciAoXygiRXJyb3Igd2hpbGUgbG9va2luZyBm b3IgYXJnIHR5cGVzIG9mIGEgeG1ldGhvZCB3b3JrZXIgIgorCSAgICAgICAi ZGVmaW5lZCBpbiAlcy4iKSwgZXh0bGFuZy0+Y2FwaXRhbGl6ZWRfbmFtZSk7 CisgICAgfQorCisgIHJldHVybiB0eXBlX2FycmF5OworfQorCisvKiBJbnZv a2VzIHRoZSB4bWV0aG9kIGVuY2Fwc3VsYXRlZCBpbiBXT1JLRVIgYW5kIHJl dHVybnMgdGhlIHJlc3VsdC4KKyAgIFRoZSBtZXRob2QgaXMgaW52b2tlZCBv biBPQkogd2l0aCBhcmd1bWVudHMgaW4gdGhlIEFSR1MgYXJyYXkuICBOQVJH UyBpcworICAgdGhlIGxlbmd0aCBvZiB0aGUgdGhpcyBhcnJheS4gICovCisK K3N0cnVjdCB2YWx1ZSAqCitpbnZva2VfeG1ldGhvZCAoc3RydWN0IHhtZXRo b2Rfd29ya2VyICp3b3JrZXIsIHN0cnVjdCB2YWx1ZSAqb2JqLAorCQkgICAg IHN0cnVjdCB2YWx1ZSAqKmFyZ3MsIGludCBuYXJncykKK3sKKyAgZ2RiX2Fz c2VydCAod29ya2VyLT5leHRsYW5nLT5vcHMtPmludm9rZV94bWV0aG9kICE9 IE5VTEwpOworCisgIHJldHVybiB3b3JrZXItPmV4dGxhbmctPm9wcy0+aW52 b2tlX3htZXRob2QgKHdvcmtlci0+ZXh0bGFuZywgd29ya2VyLAorCQkJCQkg ICAgICAgb2JqLCBhcmdzLCBuYXJncyk7Cit9CisKKy8qIEZyZWVzIHRoZSB4 bWV0aG9kIHdvcmtlciBXT1JLRVIuICAqLworCit2b2lkCitmcmVlX3htZXRo b2Rfd29ya2VyIChzdHJ1Y3QgeG1ldGhvZF93b3JrZXIgKndvcmtlcikKK3sK KyAgZ2RiX2Fzc2VydCAod29ya2VyLT5leHRsYW5nLT5vcHMtPmZyZWVfeG1l dGhvZF93b3JrZXJfZGF0YSAhPSBOVUxMKTsKKyAgd29ya2VyLT5leHRsYW5n LT5vcHMtPmZyZWVfeG1ldGhvZF93b3JrZXJfZGF0YSAod29ya2VyLT5leHRs YW5nLAorCQkJCQkJICB3b3JrZXItPmRhdGEpOworICB4ZnJlZSAod29ya2Vy KTsKK30KKworLyogRnJlZXMgYSB2ZWN0b3Igb2YgeG1ldGhvZF93b3JrZXJz IFZFQy4gICovCisKK3ZvaWQKK2ZyZWVfeG1ldGhvZF93b3JrZXJfdmVjICh2 b2lkICp2ZWMpCit7CisgIGludCBpOworICBzdHJ1Y3QgeG1ldGhvZF93b3Jr ZXIgKndvcmtlcjsKKyAgVkVDICh4bWV0aG9kX3dvcmtlcl9wdHIpICp2ID0g KFZFQyAoeG1ldGhvZF93b3JrZXJfcHRyKSAqKSB2ZWM7CisKKyAgZm9yIChp ID0gMDsgVkVDX2l0ZXJhdGUgKHhtZXRob2Rfd29ya2VyX3B0ciwgdiwgaSwg d29ya2VyKTsgaSsrKQorICAgIGZyZWVfeG1ldGhvZF93b3JrZXIgKHdvcmtl cik7CisKKyAgVkVDX2ZyZWUgKHhtZXRob2Rfd29ya2VyX3B0ciwgdik7Cit9 CisMCiAvKiBDYWxsZWQgdmlhIGFuIG9ic2VydmVyIGJlZm9yZSBnZGIgcHJp bnRzIGl0cyBwcm9tcHQuCiAgICBJdGVyYXRlIG92ZXIgdGhlIGV4dGVuc2lv biBsYW5ndWFnZXMgZ2l2aW5nIHRoZW0gYSBjaGFuY2UgdG8KICAgIGNoYW5n ZSB0aGUgcHJvbXB0LiAgVGhlIGZpcnN0IG9uZSB0byBjaGFuZ2UgdGhlIHBy b21wdCB3aW5zLApkaWZmIC0tZ2l0IGEvZ2RiL2V4dGVuc2lvbi5oIGIvZ2Ri L2V4dGVuc2lvbi5oCmluZGV4IDYxZGM4MWIuLmMwOGQ5OGQgMTAwNjQ0Ci0t LSBhL2dkYi9leHRlbnNpb24uaAorKysgYi9nZGIvZXh0ZW5zaW9uLmgKQEAg LTIxLDYgKzIxLDcgQEAKICNkZWZpbmUgRVhURU5TSU9OX0gKIAogI2luY2x1 ZGUgIm1pL21pLWNtZHMuaCIgLyogRm9yIFBSSU5UX05PX1ZBTFVFUywgZXRj LiAgKi8KKyNpbmNsdWRlICJjb21tb24vdmVjLmgiCiAKIHN0cnVjdCBicmVh a3BvaW50Owogc3RydWN0IGNvbW1hbmRfbGluZTsKQEAgLTEzOCw2ICsxMzks MjYgQEAgc3RydWN0IGV4dF9sYW5nX3R5cGVfcHJpbnRlcnMKICAgLyogVHlw ZS1wcmludGVycyBmcm9tIFB5dGhvbi4gICovCiAgIHZvaWQgKnB5X3R5cGVf cHJpbnRlcnM7CiB9OworCisvKiBBIHR5cGUgd2hpY2ggaG9sZHMgaXRzIGV4 dGVuc2lvbiBsYW5ndWFnZSBzcGVjaWZpYyB4bWV0aG9kIHdvcmtlciBkYXRh LiAgKi8KKworc3RydWN0IHhtZXRob2Rfd29ya2VyCit7CisgIC8qIFRoZSBs YW5ndWFnZSB0aGUgeG1ldGhvZCB3b3JrZXIgaXMgaW1wbGVtZW50ZWQgaW4u ICAqLworICBjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4g KmV4dGxhbmc7CisKKyAgLyogVGhlIGV4dGVuc2lvbiBsYW5ndWFnZSBzcGVj aWZpYyBkYXRhIGZvciB0aGlzIHhtZXRob2Qgd29ya2VyLiAgKi8KKyAgdm9p ZCAqZGF0YTsKKworICAvKiBUaGUgVFlQRV9DT0RFX1hNRVRIT0QgdmFsdWUg Y29ycmVzcG9uZGluZyB0byB0aGlzIHdvcmtlci4KKyAgICAgQWx3YXlzIHVz ZSB2YWx1ZV9vZl94bWV0aG9kIHRvIGFjY2VzcyBpdC4gICovCisgIHN0cnVj dCB2YWx1ZSAqdmFsdWU7Cit9OworCit0eXBlZGVmIHN0cnVjdCB4bWV0aG9k X3dvcmtlciAqeG1ldGhvZF93b3JrZXJfcHRyOworREVGX1ZFQ19QICh4bWV0 aG9kX3dvcmtlcl9wdHIpOwordHlwZWRlZiBWRUMgKHhtZXRob2Rfd29ya2Vy X3B0cikgeG1ldGhvZF93b3JrZXJfdmVjOworCiAMCiAvKiBUaGUgaW50ZXJm YWNlIGZvciBnZGIncyBvd24gZXh0ZW5zaW9uKC9zY3JpcHRpbmcpIGxhbmd1 YWdlLiAgKi8KIGV4dGVybiBjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1 YWdlX2RlZm4gZXh0ZW5zaW9uX2xhbmd1YWdlX2dkYjsKQEAgLTIxMiw0ICsy MzMsMjIgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3Vh Z2VfZGVmbiAqZ2V0X2JyZWFrcG9pbnRfY29uZF9leHRfbGFuZwogCiBleHRl cm4gaW50IGJyZWFrcG9pbnRfZXh0X2xhbmdfY29uZF9zYXlzX3N0b3AgKHN0 cnVjdCBicmVha3BvaW50ICopOwogCitleHRlcm4gc3RydWN0IHZhbHVlICpp bnZva2VfeG1ldGhvZCAoc3RydWN0IHhtZXRob2Rfd29ya2VyICosCisJCQkJ ICAgICBzdHJ1Y3QgdmFsdWUgKiwKKwkJCQkgICAgIHN0cnVjdCB2YWx1ZSAq KiwgaW50IG5hcmdzKTsKKworZXh0ZXJuIHN0cnVjdCB4bWV0aG9kX3dvcmtl ciAqY2xvbmVfeG1ldGhvZF93b3JrZXIgKHN0cnVjdCB4bWV0aG9kX3dvcmtl ciAqKTsKKworZXh0ZXJuIHN0cnVjdCB4bWV0aG9kX3dvcmtlciAqbmV3X3ht ZXRob2Rfd29ya2VyCisgIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1 YWdlX2RlZm4gKmV4dGxhbmcsIHZvaWQgKmRhdGEpOworCitleHRlcm4gdm9p ZCBmcmVlX3htZXRob2Rfd29ya2VyIChzdHJ1Y3QgeG1ldGhvZF93b3JrZXIg Kik7CisKK2V4dGVybiB2b2lkIGZyZWVfeG1ldGhvZF93b3JrZXJfdmVjICh2 b2lkICp2ZWMpOworCitleHRlcm4geG1ldGhvZF93b3JrZXJfdmVjICpnZXRf bWF0Y2hpbmdfeG1ldGhvZF93b3JrZXJzCisgIChzdHJ1Y3QgdHlwZSAqLCBj b25zdCBjaGFyICopOworCitleHRlcm4gc3RydWN0IHR5cGUgKipnZXRfeG1l dGhvZF9hcmdfdHlwZXMgKHN0cnVjdCB4bWV0aG9kX3dvcmtlciAqLCBpbnQg Kik7CisKICNlbmRpZiAvKiBFWFRFTlNJT05fSCAqLwpkaWZmIC0tZ2l0IGEv Z2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYwppbmRleCBkNTgxOTNl Li4wZDdiNzkzIDEwMDY0NAotLS0gYS9nZGIvZ2RidHlwZXMuYworKysgYi9n ZGIvZ2RidHlwZXMuYwpAQCAtNDM4Nyw2ICs0Mzg3LDEwIEBAIGdkYnR5cGVz X3Bvc3RfaW5pdCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCiAgICAgPSBh cmNoX3R5cGUgKGdkYmFyY2gsIFRZUEVfQ09ERV9JTlRFUk5BTF9GVU5DVElP TiwgMCwKIAkJICI8aW50ZXJuYWwgZnVuY3Rpb24+Iik7CiAKKyAgLyogVGhp cyB0eXBlIHJlcHJlc2VudHMgYW4geG1ldGhvZC4gICovCisgIGJ1aWx0aW5f dHlwZS0+eG1ldGhvZAorICAgID0gYXJjaF90eXBlIChnZGJhcmNoLCBUWVBF X0NPREVfWE1FVEhPRCwgMCwgIjx4bWV0aG9kPiIpOworCiAgIHJldHVybiBi dWlsdGluX3R5cGU7CiB9CiAKZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5o IGIvZ2RiL2dkYnR5cGVzLmgKaW5kZXggODZiMWQ2Mi4uYmI2MzUyZCAxMDA2 NDQKLS0tIGEvZ2RiL2dkYnR5cGVzLmgKKysrIGIvZ2RiL2dkYnR5cGVzLmgK QEAgLTE3OSw3ICsxNzksMTAgQEAgZW51bSB0eXBlX2NvZGUKICAgICBUWVBF X0NPREVfTU9EVUxFLAkJLyoqPCBGb3J0cmFuIG1vZHVsZS4gICovCiAKICAg ICAvKiAqIEludGVybmFsIGZ1bmN0aW9uIHR5cGUuICAqLwotICAgIFRZUEVf Q09ERV9JTlRFUk5BTF9GVU5DVElPTgorICAgIFRZUEVfQ09ERV9JTlRFUk5B TF9GVU5DVElPTiwKKworICAgIC8qICogTWV0aG9kcyBpbXBsZW1lbnRlZCBp biBleHRlbnNpb24gbGFuZ3VhZ2VzLiAgKi8KKyAgICBUWVBFX0NPREVfWE1F VEhPRAogICB9OwogCiAvKiAqIEZvciBub3cgYWxsb3cgc291cmNlIHRvIHVz ZSBUWVBFX0NPREVfQ0xBU1MgZm9yIEMrKyBjbGFzc2VzLCBhcwpAQCAtMTQ2 OCw2ICsxNDcxLDkgQEAgc3RydWN0IGJ1aWx0aW5fdHlwZQogICAvKiAqIFRo aXMgdHlwZSBpcyB1c2VkIHRvIHJlcHJlc2VudCBhIEdEQiBpbnRlcm5hbCBm dW5jdGlvbi4gICovCiAKICAgc3RydWN0IHR5cGUgKmludGVybmFsX2ZuOwor CisgIC8qICogVGhpcyB0eXBlIGlzIHVzZWQgdG8gcmVwcmVzZW50IGFuIHht ZXRob2QuICAqLworICBzdHJ1Y3QgdHlwZSAqeG1ldGhvZDsKIH07CiAKIC8q ICogUmV0dXJuIHRoZSB0eXBlIHRhYmxlIGZvciB0aGUgc3BlY2lmaWVkIGFy Y2hpdGVjdHVyZS4gICovCmRpZmYgLS1naXQgYS9nZGIvdmFsb3BzLmMgYi9n ZGIvdmFsb3BzLmMKaW5kZXggZmYyNWYxYS4uZTkxNWUzNCAxMDA2NDQKLS0t IGEvZ2RiL3ZhbG9wcy5jCisrKyBiL2dkYi92YWxvcHMuYwpAQCAtMTM3Miw3 ICsxMzcyLDggQEAgdmFsdWVfbXVzdF9jb2VyY2VfdG9fdGFyZ2V0IChzdHJ1 Y3QgdmFsdWUgKnZhbCkKIAogICAvKiBUaGUgb25seSBsdmFsIGtpbmRzIHdo aWNoIGRvIG5vdCBsaXZlIGluIHRhcmdldCBtZW1vcnkuICAqLwogICBpZiAo VkFMVUVfTFZBTCAodmFsKSAhPSBub3RfbHZhbAotICAgICAgJiYgVkFMVUVf TFZBTCAodmFsKSAhPSBsdmFsX2ludGVybmFsdmFyKQorICAgICAgJiYgVkFM VUVfTFZBTCAodmFsKSAhPSBsdmFsX2ludGVybmFsdmFyCisgICAgICAmJiBW QUxVRV9MVkFMICh2YWwpICE9IGx2YWxfeGNhbGxhYmxlKQogICAgIHJldHVy biAwOwogCiAgIHZhbHR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBl ICh2YWwpKTsKZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5jIGIvZ2RiL3ZhbHVl LmMKaW5kZXggZDEyNWEwOS4uMWNkYjEwOSAxMDA2NDQKLS0tIGEvZ2RiL3Zh bHVlLmMKKysrIGIvZ2RiL3ZhbHVlLmMKQEAgLTIzMCw2ICsyMzAsOSBAQCBz dHJ1Y3QgdmFsdWUKICAgICAvKiBQb2ludGVyIHRvIGludGVybmFsIHZhcmlh YmxlLiAgKi8KICAgICBzdHJ1Y3QgaW50ZXJuYWx2YXIgKmludGVybmFsdmFy OwogCisgICAgLyogUG9pbnRlciB0byB4bWV0aG9kIHdvcmtlci4gICovCisg ICAgc3RydWN0IHhtZXRob2Rfd29ya2VyICp4bV93b3JrZXI7CisKICAgICAv KiBJZiBsdmFsID09IGx2YWxfY29tcHV0ZWQsIHRoaXMgaXMgYSBzZXQgb2Yg ZnVuY3Rpb24gcG9pbnRlcnMKICAgICAgICB0byB1c2UgdG8gYWNjZXNzIGFu ZCBkZXNjcmliZSB0aGUgdmFsdWUsIGFuZCBhIGNsb3N1cmUgcG9pbnRlcgog ICAgICAgIGZvciB0aGVtIHRvIHVzZS4gICovCkBAIC0xMzQwLDcgKzEzNDMs OCBAQCBDT1JFX0FERFIKIHZhbHVlX2FkZHJlc3MgKGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsdWUpCiB7CiAgIGlmICh2YWx1ZS0+bHZhbCA9PSBsdmFsX2lu dGVybmFsdmFyCi0gICAgICB8fCB2YWx1ZS0+bHZhbCA9PSBsdmFsX2ludGVy bmFsdmFyX2NvbXBvbmVudCkKKyAgICAgIHx8IHZhbHVlLT5sdmFsID09IGx2 YWxfaW50ZXJuYWx2YXJfY29tcG9uZW50CisgICAgICB8fCB2YWx1ZS0+bHZh bCA9PSBsdmFsX3hjYWxsYWJsZSkKICAgICByZXR1cm4gMDsKICAgaWYgKHZh bHVlLT5wYXJlbnQgIT0gTlVMTCkKICAgICByZXR1cm4gdmFsdWVfYWRkcmVz cyAodmFsdWUtPnBhcmVudCkgKyB2YWx1ZS0+b2Zmc2V0OwpAQCAtMTM1Miw3 ICsxMzU2LDggQEAgQ09SRV9BRERSCiB2YWx1ZV9yYXdfYWRkcmVzcyAoc3Ry dWN0IHZhbHVlICp2YWx1ZSkKIHsKICAgaWYgKHZhbHVlLT5sdmFsID09IGx2 YWxfaW50ZXJuYWx2YXIKLSAgICAgIHx8IHZhbHVlLT5sdmFsID09IGx2YWxf aW50ZXJuYWx2YXJfY29tcG9uZW50KQorICAgICAgfHwgdmFsdWUtPmx2YWwg PT0gbHZhbF9pbnRlcm5hbHZhcl9jb21wb25lbnQKKyAgICAgIHx8IHZhbHVl LT5sdmFsID09IGx2YWxfeGNhbGxhYmxlKQogICAgIHJldHVybiAwOwogICBy ZXR1cm4gdmFsdWUtPmxvY2F0aW9uLmFkZHJlc3M7CiB9CkBAIC0xMzYxLDcg KzEzNjYsOCBAQCB2b2lkCiBzZXRfdmFsdWVfYWRkcmVzcyAoc3RydWN0IHZh bHVlICp2YWx1ZSwgQ09SRV9BRERSIGFkZHIpCiB7CiAgIGdkYl9hc3NlcnQg KHZhbHVlLT5sdmFsICE9IGx2YWxfaW50ZXJuYWx2YXIKLQkgICAgICAmJiB2 YWx1ZS0+bHZhbCAhPSBsdmFsX2ludGVybmFsdmFyX2NvbXBvbmVudCk7CisJ ICAgICAgJiYgdmFsdWUtPmx2YWwgIT0gbHZhbF9pbnRlcm5hbHZhcl9jb21w b25lbnQKKwkgICAgICAmJiB2YWx1ZS0+bHZhbCAhPSBsdmFsX3hjYWxsYWJs ZSk7CiAgIHZhbHVlLT5sb2NhdGlvbi5hZGRyZXNzID0gYWRkcjsKIH0KIApA QCAtMTQzMyw2ICsxNDM5LDggQEAgdmFsdWVfZnJlZSAoc3RydWN0IHZhbHVl ICp2YWwpCiAJICBpZiAoZnVuY3MtPmZyZWVfY2xvc3VyZSkKIAkgICAgZnVu Y3MtPmZyZWVfY2xvc3VyZSAodmFsKTsKIAl9CisgICAgICBlbHNlIGlmIChW QUxVRV9MVkFMICh2YWwpID09IGx2YWxfeGNhbGxhYmxlKQorCSAgZnJlZV94 bWV0aG9kX3dvcmtlciAodmFsLT5sb2NhdGlvbi54bV93b3JrZXIpOwogCiAg ICAgICB4ZnJlZSAodmFsLT5jb250ZW50cyk7CiAgICAgICBWRUNfZnJlZSAo cmFuZ2VfcywgdmFsLT51bmF2YWlsYWJsZSk7CkBAIC0xNjIzLDYgKzE2MzEs OCBAQCB2b2lkCiBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uIChzdHJ1 Y3QgdmFsdWUgKmNvbXBvbmVudCwKIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZSAqd2hvbGUpCiB7CisgIGdkYl9hc3NlcnQgKHdob2xlLT5sdmFsICE9 IGx2YWxfeGNhbGxhYmxlKTsKKwogICBpZiAod2hvbGUtPmx2YWwgPT0gbHZh bF9pbnRlcm5hbHZhcikKICAgICBWQUxVRV9MVkFMIChjb21wb25lbnQpID0g bHZhbF9pbnRlcm5hbHZhcl9jb21wb25lbnQ7CiAgIGVsc2UKQEAgLTI0NTYs NiArMjQ2NiwzNyBAQCBzaG93X2NvbnZlbmllbmNlIChjaGFyICppZ25vcmUs IGludCBmcm9tX3R0eSkKICAgICB9CiB9CiAMCisvKiBSZXR1cm4gdGhlIFRZ UEVfQ09ERV9YTUVUSE9EIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gV09SS0VS LiAgKi8KKworc3RydWN0IHZhbHVlICoKK3ZhbHVlX29mX3htZXRob2QgKHN0 cnVjdCB4bWV0aG9kX3dvcmtlciAqd29ya2VyKQoreworICBpZiAod29ya2Vy LT52YWx1ZSA9PSBOVUxMKQorICAgIHsKKyAgICAgIHN0cnVjdCB2YWx1ZSAq djsKKworICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVlIChidWlsdGluX3R5cGUg KHRhcmdldF9nZGJhcmNoICgpKS0+eG1ldGhvZCk7CisgICAgICB2LT5sdmFs ID0gbHZhbF94Y2FsbGFibGU7CisgICAgICB2LT5sb2NhdGlvbi54bV93b3Jr ZXIgPSB3b3JrZXI7CisgICAgICB2LT5tb2RpZmlhYmxlID0gMDsKKyAgICAg IHdvcmtlci0+dmFsdWUgPSB2OworICAgIH0KKworICByZXR1cm4gd29ya2Vy LT52YWx1ZTsKK30KKworLyogQ2FsbCB0aGUgeG1ldGhvZCBjb3JyZXNwb25k aW5nIHRvIHRoZSBUWVBFX0NPREVfWE1FVEhPRCB2YWx1ZSBNRVRIT0QuICAq LworCitzdHJ1Y3QgdmFsdWUgKgorY2FsbF94bWV0aG9kIChzdHJ1Y3QgdmFs dWUgKm1ldGhvZCwgaW50IGFyZ2MsIHN0cnVjdCB2YWx1ZSAqKmFyZ3YpCit7 CisgIGdkYl9hc3NlcnQgKFRZUEVfQ09ERSAodmFsdWVfdHlwZSAobWV0aG9k KSkgPT0gVFlQRV9DT0RFX1hNRVRIT0QKKwkgICAgICAmJiBtZXRob2QtPmx2 YWwgPT0gbHZhbF94Y2FsbGFibGUgJiYgYXJnYyA+IDApOworCisgIHJldHVy biBpbnZva2VfeG1ldGhvZCAobWV0aG9kLT5sb2NhdGlvbi54bV93b3JrZXIs CisJCQkgYXJndlswXSwgYXJndiArIDEsIGFyZ2MgLSAxKTsKK30KKwwKIC8q IEV4dHJhY3QgYSB2YWx1ZSBhcyBhIEMgbnVtYmVyIChlaXRoZXIgbG9uZyBv ciBkb3VibGUpLgogICAgS25vd3MgaG93IHRvIGNvbnZlcnQgZml4ZWQgdmFs dWVzIHRvIGRvdWJsZSwgb3IKICAgIGZsb2F0aW5nIHZhbHVlcyB0byBsb25n LgpkaWZmIC0tZ2l0IGEvZ2RiL3ZhbHVlLmggYi9nZGIvdmFsdWUuaAppbmRl eCAxNDRlMTgyLi42NWZkMjAzIDEwMDY0NAotLS0gYS9nZGIvdmFsdWUuaAor KysgYi9nZGIvdmFsdWUuaApAQCAtMzEsNiArMzEsNyBAQCBzdHJ1Y3QgdHlw ZTsKIHN0cnVjdCB1aV9maWxlOwogc3RydWN0IGxhbmd1YWdlX2RlZm47CiBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9uczsKK3N0cnVjdCB4bWV0aG9kX3dv cmtlcjsKIAogLyogVGhlIHN0cnVjdHVyZSB3aGljaCBkZWZpbmVzIHRoZSB0 eXBlIG9mIGEgdmFsdWUuICBJdCBzaG91bGQgbmV2ZXIKICAgIGJlIHBvc3Np YmxlIGZvciBhIHByb2dyYW0gbHZhbCB2YWx1ZSB0byBzdXJ2aXZlIG92ZXIg YSBjYWxsIHRvIHRoZQpAQCAtMTAxMSw0ICsxMDEyLDkgQEAgc3RydWN0IHZh bHVlICpjYWxsX2ludGVybmFsX2Z1bmN0aW9uIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCwKIAogY2hhciAqdmFsdWVfaW50ZXJuYWxfZnVuY3Rpb25fbmFt ZSAoc3RydWN0IHZhbHVlICopOwogCitleHRlcm4gc3RydWN0IHZhbHVlICp2 YWx1ZV9vZl94bWV0aG9kIChzdHJ1Y3QgeG1ldGhvZF93b3JrZXIgKik7CisK K3N0cnVjdCB2YWx1ZSAqY2FsbF94bWV0aG9kIChzdHJ1Y3QgdmFsdWUgKmZ1 bmN0aW9uLAorCQkJICAgIGludCBhcmdjLCBzdHJ1Y3QgdmFsdWUgKiphcmd2 KTsKKwogI2VuZGlmIC8qICFkZWZpbmVkIChWQUxVRV9IKSAqLwo= --001a11c1b2cac219fc04faa5fd0c--