From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7361 invoked by alias); 31 Aug 2011 15:09:49 -0000 Received: (qmail 7352 invoked by uid 22791); 31 Aug 2011 15:09:47 -0000 X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_BJ,TW_TD,TW_XC,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-wy0-f169.google.com (HELO mail-wy0-f169.google.com) (74.125.82.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 31 Aug 2011 15:09:32 +0000 Received: by wyi11 with SMTP id 11so683897wyi.0 for ; Wed, 31 Aug 2011 08:09:30 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.160.79 with SMTP id t57mr528843wek.37.1314803370377; Wed, 31 Aug 2011 08:09:30 -0700 (PDT) Received: by 10.216.22.75 with HTTP; Wed, 31 Aug 2011 08:09:30 -0700 (PDT) Date: Wed, 31 Aug 2011 15:09:00 -0000 Message-ID: Subject: [PATCH][TEST-CASE][DOC] Implementation of pipe to pass GDB's command output to a shell command. From: Abhijit Halder To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=0016e64c1c98d7435504abce834c 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-08/txt/msg00660.txt.bz2 --0016e64c1c98d7435504abce834c Content-Type: text/plain; charset=ISO-8859-1 Content-length: 553 Hi all, This is the complete patch (code in combination with documentation and test-cases along with new-entry and change-logs) after the incorporation of all review comments received so far. I believe the code, test-cases and documentation part has already been approved. I am submitting this patch as a whole for a final level of review and approval for check-in. Please review the same and let me know whether this version is ready for check-in. At the same time I am working on copyright assignment. This may take a while. Thanks, Abhijit Halder --0016e64c1c98d7435504abce834c Content-Type: text/x-patch; charset=US-ASCII; name="gdb-pipe-command.patch" Content-Disposition: attachment; filename="gdb-pipe-command.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gs0fqpxx0 Content-length: 18036 ZGlmZiAtcnVwIHNyYy9nZGIvQ2hhbmdlTG9nIGRzdC9nZGIvQ2hhbmdlTG9n Ci0tLSBzcmMvZ2RiL0NoYW5nZUxvZwkyMDExLTA4LTMwIDE5OjMyOjI5LjY2 MDE5MDkxMSArMDUzMAorKysgZHN0L2dkYi9DaGFuZ2VMb2cJMjAxMS0wOC0z MCAxOTozNTowMi4wMDAwMDAwMDAgKzA1MzAKQEAgLTEsMyArMSwxMyBAQAor MjAxMS0wOC0yOSAgQWJoaWppdCBIYWxkZXIgIDxhYmhpaml0LmsuaGFsZGVy QGdtYWlsLmNvbT4KKworCUltcGxlbWVudGF0aW9uIG9mIHBpcGUgdG8gcGFz cyBHREIncyBjb21tYW5kIG91dHB1dCB0byBhIHNoZWxsCisJY29tbWFuZCBm b3IgcHJvY2Vzc2luZy4KKworCSogTkVXUzogQWRkIG5ld3MgaXRlbSBmb3Ig dGhlIG5ldyBjb21tYW5kICJwaXBlIi4KKwkqIHBpcGUuYzogTmV3IGZpbGUu CisJKiBNYWtlZmlsZS5pbiAoU0ZJTEVTKTogQWRkIHBpcGUuYy4KKwkoQ09N TU9OX09CUyk6IEFkZCBwaXBlLm8uCisKIDIwMTEtMDgtMjkgIFlhbyBRaSAg PHlhb0Bjb2Rlc291cmNlcnkuY29tPgogCiAJKiBzb2xpYi1kc2J0LmMgKGJm ZF9sb29rdXBfc3ltYm9sKTogUmVtb3ZlZC4KZGlmZiAtcnVwIHNyYy9nZGIv ZG9jL0NoYW5nZUxvZyBkc3QvZ2RiL2RvYy9DaGFuZ2VMb2cKLS0tIHNyYy9n ZGIvZG9jL0NoYW5nZUxvZwkyMDExLTA4LTI3IDIwOjM1OjM4LjQ1OTkzNDAy OSArMDUzMAorKysgZHN0L2dkYi9kb2MvQ2hhbmdlTG9nCTIwMTEtMDgtMzEg MTM6MzM6NTkuMDAwMDAwMDAwICswNTMwCkBAIC0xLDMgKzEsNyBAQAorMjAx MS0wOC0yOSAgQWJoaWppdCBIYWxkZXIgIDxhYmhpaml0LmsuaGFsZGVyQGdt YWlsLmNvbT4KKworCSogZ2RiLnRleGluZm8gKFNoZWxsIENvbW1hbmRzKTog QWRkIHBpcGUgY29tbWFuZC4KKwogMjAxMS0wOC0yNSAgQW5kcmV3IE9ha2xl eSAgPGFuZHJld0BhZG8uaXMtYS1nZWVrLm5ldD4KIAogCSogZ2RiLnRleGlu Zm8gKFR5cGVzIEluIFB5dGhvbik6IERvY3VtZW50ICdiaXRwb3MnIGZvciBl bnVtcy4KZGlmZiAtcnVwIHNyYy9nZGIvZG9jL2dkYi50ZXhpbmZvIGRzdC9n ZGIvZG9jL2dkYi50ZXhpbmZvCi0tLSBzcmMvZ2RiL2RvYy9nZGIudGV4aW5m bwkyMDExLTA4LTI2IDIxOjExOjM5LjkzODM1NDAwNyArMDUzMAorKysgZHN0 L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMS0wOC0zMSAxODoyMzowNS4wMDAw MDAwMDAgKzA1MzAKQEAgLTEzNjcsNiArMTM2Nyw1MiBAQCBFeGVjdXRlIHRo ZSBAY29kZXttYWtlfSBwcm9ncmFtIHdpdGggdGhlCiBhcmd1bWVudHMuICBU aGlzIGlzIGVxdWl2YWxlbnQgdG8gQHNhbXB7c2hlbGwgbWFrZSBAdmFye21h a2UtYXJnc319LgogQGVuZCB0YWJsZQogCitJZiB5b3Ugd2FudCB0byBwcm9j ZXNzIHRoZSBvdXRwdXQgb2YgYSBAdmFsdWV7R0RCTn0gY29tbWFuZCB1c2lu ZyBzb21lIHNoZWxsCitjb21tYW5kIG9yIHNvbWUgc2NyaXB0LCB0aGF0IGNh biBiZSBkb25lIGJ5IHVzaW5nIHRoZSBjb21tYW5kIEBjb2Rle3BpcGV9Lgor CitAdGFibGUgQGNvZGUKK0BraW5kZXggcGlwZQorQGl0ZW0gcGlwZSBAdmFy e2RsaW19IEB2YXJ7Z2RiY21kfSBAdmFye2RsaW19IEB2YXJ7c2hlbGxjbWR9 CitAdmFye2RsaW19IGlzIGEgc3RyaW5nIG9mIGFyYml0cmFyeSBsZW5ndGgs IGNvbnRhaW5pbmcgbm8gd2hpdGVzcGFjZSBhbmQgbm8KK2xlYWRpbmcgQHNh bXB7LX0sIGFjdHMgYXMgYSBzZXBhcmF0b3IgYmV0d2VlbiBhIEB2YWx1ZXtH REJOfSBjb21tYW5kCitAdmFye2dkYmNtZH0gYW5kIGEgc2hlbGwgY29tbWFu ZCBAdmFye3NoZWxsY21kfS4gIFRoZSBzaGVsbCBjb21tYW5kIHNob3VsZCBi ZQoraW4gY29tcGxpYW5jZSB3aXRoIHRoZSBzeW50YXggb2YgdGhlIGRlZmF1 bHQgc2hlbGwuICBUaGUgQHZhcntkbGltfSBwYXR0ZXJuCitzaG91bGQgbm90 IGFwcGVhciBpbiBAdmFye2dkYmNvbWR9IG90aGVyd2lzZSB0aGUgcGFyc2lu ZyB3aWxsIGZhaWw7IGFsdGhvdWdoIGl0CittYXkgYXBwZWFyIGluIEB2YXJ7 c2hlbGxjbWR9LgorQGVuZCB0YWJsZQorCitAc21hbGxleGFtcGxlCisoQHZh bHVle0dEQlB9KSBAYntwdHlwZSBkZF90Ymx9Cit0eXBlID0gc3RydWN0IGRk IEB7CisgICAgaW50IGRkX2hhbmRsZTsKKyAgICBjb25zdCBjaGFyICpkZF9u YW1lOworICAgIGludCBkZF9tYWpvcjsKKyAgICBpbnQgZGRfbWlub3I7Cisg ICAgdm9pZCAqZGRfY29kZTsKKyAgICB2b2lkICpkZF9kYXRhOworQH0gWzEw MjRdCisoQHZhbHVle0dEQlB9KSBAYntwaXBlIDxicj4gcHJpbnQgZGRfdGJs IDxicj4gc2VkICdzL0B9L1xuL2cnIHwgZ3JlcCBACisiXC50ZXN0X2RkIiB8 IHRyICcsJyAnXG4nfQorCisgIEB7ZGRfaGFuZGxlID0gMTAKKyAgZGRfbmFt ZSA9IDB4ODA0ODUzOCAiLnRlc3RfZGQiCisgIGRkX21ham9yID0gMTAwCisg IGRkX21pbm9yID0gMAorICBkZF9jb2RlID0gMHhjYworICBkZF9kYXRhID0g MHg4MAorQGVuZCBzbWFsbGV4YW1wbGUKKworSW4gdGhlIGFib3ZlIGV4YW1w bGUgQHNhbXB7PGJyPn0gYWN0cyBhcyBhIGRlbGltaXRlci4gIFRoZSBvdXRw dXQgb2YKK0BzYW1we3ByaW50IGRkX3RibH0gaXMgcGFzc2VkIHRvIHRoZSBz aGVsbCBjb21tYW5kIEBzYW1we3NlZCAncy9AfS9cbi9nJyB8IEAKK2dyZXAg Ii50ZXN0X2RkIiB8IHRyICcsJyAnXG4nfSBmb3IgcHJvY2Vzc2luZy4gIEBz YW1we3x9IGNvdWxkIGJlIG9uZSBvZiB0aGUKK25hdHVyYWwgY2hvaXNlIG9m IGJlaW5nIHVzZWQgYXMgdGhlIGRlbGltaXRlci4gIEluIHRoZSBhYm92ZSBl eGFtcGxlIHdlIGhhdmUKK2F2b2lkZWQgdGhlIHNhbWUgZm9yIHJlYWRhYmls aXR5IHB1cnBvc2UuCisKK0luIHRoZSBnaXZlbiBleGFtcGxlIHRoZSBvdXRw dXQgb2YgQHZhbHVle0dEQk59IGNvbW1hbmQgQHNhbXB7cHJpbnQgZGRfdGJs fSBpcworaHVnZSBhbmQgbm90IHdlbGwgZm9ybWF0ZWQuICBUaGUgdXNlIG9m IHNoZWxsIGNvbW1hbmRzIGxpa2UgQGNvbW1hbmR7c2VkfSwKK0Bjb21tYW5k e3RyfSBhbmQgQGNvbW1hbmR7Z3JlcH0gZWFzZSB0aGUgc2VhcmNoaW5nIG9m IGRlc2lyZWQgcGF0dGVybiBhbmQgaGVuY2UKK2Vhc2UgZGVidWdnaW5nLgor CiBAbm9kZSBMb2dnaW5nIE91dHB1dAogQHNlY3Rpb24gTG9nZ2luZyBPdXRw dXQKIEBjaW5kZXggbG9nZ2luZyBAdmFsdWV7R0RCTn0gb3V0cHV0CmRpZmYg LXJ1cCBzcmMvZ2RiL01ha2VmaWxlLmluIGRzdC9nZGIvTWFrZWZpbGUuaW4K LS0tIHNyYy9nZGIvTWFrZWZpbGUuaW4JMjAxMS0wOC0zMCAxOTo0Mjo1My41 OTIxOTU2NjUgKzA1MzAKKysrIGRzdC9nZGIvTWFrZWZpbGUuaW4JMjAxMS0w OC0zMCAxOTo0Mjo1Ny4wMDAwMDAwMDAgKzA1MzAKQEAgLTcxNCw3ICs3MTQs NyBAQCBTRklMRVMgPSBhZGEtZXhwLnkgYWRhLWxhbmcuYyBhZGEtdHlwZXBy CiAJb2JqYy1leHAueSBvYmpjLWxhbmcuYyBcCiAJb2JqZmlsZXMuYyBvc2Fi aS5jIG9ic2VydmVyLmMgb3NkYXRhLmMgXAogCW9wZW5jbC1sYW5nLmMgXAot CXAtZXhwLnkgcC1sYW5nLmMgcC10eXBlcHJpbnQuYyBwLXZhbHByaW50LmMg cGFyc2UuYyBwcmludGNtZC5jIFwKKwlwLWV4cC55IHAtbGFuZy5jIHAtdHlw ZXByaW50LmMgcC12YWxwcmludC5jIHBhcnNlLmMgcGlwZS5jIHByaW50Y21k LmMgXAogCXByb2Mtc2VydmljZS5saXN0IHByb2dzcGFjZS5jIFwKIAlwcm9s b2d1ZS12YWx1ZS5jIHBzeW10YWIuYyBcCiAJcmVnY2FjaGUuYyByZWdncm91 cHMuYyByZW1vdGUuYyByZW1vdGUtZmlsZWlvLmMgcmV2ZXJzZS5jIFwKQEAg LTg3MSw3ICs4NzEsNyBAQCBDT01NT05fT0JTID0gJChERVBGSUxFUykgJChD T05GSUdfT0JTKSAkCiAJbWktY29tbW9uLm8gXAogCWV2ZW50LWxvb3AubyBl dmVudC10b3AubyBpbmYtbG9vcC5vIGNvbXBsZXRlci5vIFwKIAlnZGJhcmNo Lm8gYXJjaC11dGlscy5vIGdkYnR5cGVzLm8gb3NhYmkubyBjb3B5aW5nLm8g XAotCW1lbWF0dHIubyBtZW0tYnJlYWsubyB0YXJnZXQubyBwYXJzZS5vIGxh bmd1YWdlLm8gYnVpbGRzeW0ubyBcCisJbWVtYXR0ci5vIG1lbS1icmVhay5v IHRhcmdldC5vIHBhcnNlLm8gcGlwZS5vIGxhbmd1YWdlLm8gYnVpbGRzeW0u byBcCiAJZmluZGNtZC5vIFwKIAlzdGQtcmVncy5vIFwKIAlzaWduYWxzLm8g XApkaWZmIC1ydXAgc3JjL2dkYi9ORVdTIGRzdC9nZGIvTkVXUwotLS0gc3Jj L2dkYi9ORVdTCTIwMTEtMDgtMjcgMjA6MzU6MzcuNTY3OTM0MDE5ICswNTMw CisrKyBkc3QvZ2RiL05FV1MJMjAxMS0wOC0yOCAxNjoxNTozNS4wMDAwMDAw MDAgKzA1MzAKQEAgLTcyLDYgKzcyLDkgQEAKIAogKiBOZXcgY29tbWFuZHMg ImluZm8gbWFjcm9zIiwgYW5kICJpbmZvIGRlZmluaXRpb25zIiBoYXZlIGJl ZW4gYWRkZWQuCiAKKyogTmV3IGNvbW1hbmQgInBpcGUiIGhhcyBiZWVuIGFk ZGVkIHRvIG1ha2UgR0RCJ3MgY29tbWFuZCBvdXRwdXQgYXZhaWxhYmxlIHRv IGEKKyAgc2hlbGwgY29tbWFuZCBmb3IgcHJvY2Vzc2luZy4KKwogKiBDaGFu Z2VkIGNvbW1hbmRzCiAKIHdhdGNoIEVYUFJFU1NJT04gbWFzayBNQVNLX1ZB TFVFCmRpZmYgLXJ1cCBzcmMvZ2RiL3BpcGUuYyBkc3QvZ2RiL3BpcGUuYwot LS0gc3JjL2dkYi9waXBlLmMJMjAxMS0wNy0yOSAxNToxNToyNi4wNzgwNDg1 MTcgKzA1MzAKKysrIGRzdC9nZGIvcGlwZS5jCTIwMTEtMDgtMjkgMTg6NTA6 MTQuMDAwMDAwMDAwICswNTMwCkBAIC0wLDAgKzEsMjMwIEBACisvKiBFdmVy eXRoaW5nIGFib3V0IHBpcGUsIGZvciBHREIuCisKKyAgIENvcHlyaWdodCAo QykgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAg VGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorCisgICBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisg ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorI2luY2x1ZGUgPGN0 eXBlLmg+CisjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgorI2luY2x1ZGUgInVp LWZpbGUuaCIKKyNpbmNsdWRlICJ1aS1vdXQuaCIKKyNpbmNsdWRlICJjbGkv Y2xpLXV0aWxzLmgiCisjaW5jbHVkZSAiZ2RiY21kLmgiCisjaW5jbHVkZSAi bGliaWJlcnR5LmgiCisjaW5jbHVkZSAiZXhjZXB0aW9ucy5oIgorCisjaWYg ZGVmaW5lZChfX01JTkdXMzJfXykKKyMgZGVmaW5lIFNIRUxMICJjbWQuZXhl IgorIyBkZWZpbmUgT1BUSU9OX1RPX1NIRUxMICIvYyIKKyNlbHNlCisjIGRl ZmluZSBTSEVMTCAiL2Jpbi9zaCIKKyMgZGVmaW5lIE9QVElPTl9UT19TSEVM TCAiLWMiCisjZW5kaWYKKworLyogU3RydWN0dXJlIHRvIGVuY2Fwc3VsYXRl IGFsbCBlbnRpdGllcyBhc3NvY2lhdGVkIHdpdGggcGlwZS4gICovCisKK3N0 cnVjdCBwaXBlX29iagoreworICAvKiBUaGUgZGVsaW1pdGVyIHRvIHNlcGFy YXRlIG91dCBnZGItY29tbWFuZCBhbmQgc2hlbGwtY29tbWFuZC4gIFRoaXMg Y2FuIGJlCisgICAgIGFueSBhcmJpdHJhcnkgc3RyaW5nIHdpdGhvdXQgY29u dGFpbmluZyBhbnkgd2hpdGVzcGFjZS4gIFRoZXJlIHNob3VsZCBub3QKKyAg ICAgYmUgYW55IGxlYWRpbmcgJy0nIGluIHRoZSBkZWxpbWl0ZXIuICAqLwor ICBjaGFyICpkbGltOworCisgIC8qIFRoZSBnZGItY29tbWFuZC4gICovCisg IGNoYXIgKmdkYl9jbWQ7CisKKyAgLyogVGhlIHNoZWxsLWNvbW1hbmQuICAq LworICBjaGFyICpzaGVsbF9jbWQ7CisKKyAgLyogVGhlIGdkYi1zaWRlIHN0 cmVhbSBwb2ludGVyIHRvIHRoZSBwaXBlLiAgKi8KKyAgRklMRSAqaGFuZGxl OworCisgIC8qIFRoZSBwZXggb2JqZWN0IHVzZWQgdG8gY3JlYXRlIHBpcGVs aW5lIGJldHdlZW4gZ2RiIGFuZCBzaGVsbC4gICovCisgIHN0cnVjdCBwZXhf b2JqICpwZXg7Cit9OworCisvKiBEZXN0cnVjdCBwaXBlIG9iamVjdCByZWZl cmVuY2VkIGJ5IEFSRy4gICovCisKK3N0YXRpYyB2b2lkCitkZXN0cnVjdF9w aXBlICh2b2lkICphcmcpCit7CisgIHN0cnVjdCBwaXBlX29iaiAqcGlwZSA9 IChzdHJ1Y3QgcGlwZV9vYmogKikgYXJnOworCisgIGlmIChwaXBlLT5oYW5k bGUgIT0gTlVMTCkKKyAgICBmY2xvc2UgKHBpcGUtPmhhbmRsZSk7CisKKyAg aWYgKHBpcGUtPnBleCAhPSBOVUxMKQorICAgIHsKKyAgICAgIGludCBzdGF0 dXM7CisKKyAgICAgIC8qIFdhaXQgdGlsbCB0aGUgcHJvY2VzcyBvbiB0aGUg b3RoZXIgc2lkZSBvZiB0aGUgcGlwZSBjb21wbGV0ZXMgaXRzCisJIGpvYiBi ZWZvcmUgY2xvc2luZyBpdHMgZmlsZSBkZXNjcmlwdG9ycy4gICovCisgICAg ICBwZXhfZ2V0X3N0YXR1cyAocGlwZS0+cGV4LCAxLCAmc3RhdHVzKTsKKwor ICAgICAgaWYgKCFXSUZFWElURUQgKHN0YXR1cykpCisJd2FybmluZyAoXygi RXhlY3V0aW9uIG9mIHNoZWxsLWNvbW1hbmQgYCVzJyBtYXkgbm90IGJlIGNv bXBsZXRlZCIpLAorCQkgcGlwZS0+c2hlbGxfY21kKTsKKworICAgICAgcGV4 X2ZyZWUgKHBpcGUtPnBleCk7CisgICAgfQorCisgIHhmcmVlIChwaXBlLT5k bGltKTsKKyAgeGZyZWUgKHBpcGUpOworfQorCisvKiBDb25zdHJ1Y3QgYSBw aXBlIG9iamVjdCBieSBwYXJzaW5nIGFyZ3VtZW50IEFSRyB0byB0aGUgcGlw ZSBjb21tYW5kLiAgKi8KKworc3RhdGljIHN0cnVjdCBwaXBlX29iaiAqCitj b25zdHJ1Y3RfcGlwZSAoY29uc3QgY2hhciAqYXJnKQoreworICBjaGFyICpw LCAqdDsKKyAgc3RydWN0IHBpcGVfb2JqICpwaXBlID0gTlVMTDsKKyAgc3Ry dWN0IGNsZWFudXAgKmNsZWFudXA7CisKKyAgaWYgKGFyZyA9PSBOVUxMKQor ICAgIGVycm9yIChfKCJObyBhcmd1bWVudCBpcyBzcGVjaWZpZWQiKSk7CisK KyAgcGlwZSA9IFhDTkVXIChzdHJ1Y3QgcGlwZV9vYmopOworICBjbGVhbnVw ID0gbWFrZV9jbGVhbnVwIChkZXN0cnVjdF9waXBlLCBwaXBlKTsKKworICBw ID0geHN0cmR1cCAoYXJnKTsKKyAgcGlwZS0+ZGxpbSA9IHA7CisKKyAgaWYg KCpwaXBlLT5kbGltID09ICctJykKKyAgICBlcnJvciAoXygiRGVsaW1pdGVy IHBhdHRlcm4gc2hvdWxkIG5vdCBzdGFydCB3aXRoICctJyIpKTsKKworICB0 ID0gc2tpcF90b19zcGFjZSAocCk7CisgIHAgPSBza2lwX3NwYWNlcyAodCk7 CisKKyAgaWYgKCpwID09ICdcMCcpCisgICAgZXJyb3IgKF8oIk5vIGdkYi1j b21tYW5kIGlzIHNwZWNpZmllZCIpKTsKKworICAqdCA9ICdcMCc7CisgIHBp cGUtPmdkYl9jbWQgPSBwOworCisgIGZvciAoOzspCisgICAgeworICAgICAg dCA9IHNraXBfdG9fc3BhY2UgKHApOworCisgICAgICBpZiAoKnQgPT0gJ1ww JykKKwllcnJvciAoXygiTm8gc2hlbGwtY29tbWFuZCBpcyBzcGVjaWZpZWQi KSk7CisKKyAgICAgIC8qIENoZWNrIHdoZXRoZXIgdGhlIHRva2VuIHNlcGFy YXRlZCBieSB3aGl0ZXNwYWNlIG1hdGNoZXMgd2l0aAorCSBkZWxpbWl0ZXIu ICAqLyAKKyAgICAgIGlmIChtZW1jbXAgKHAsIHBpcGUtPmRsaW0sICh0IC0g cCkpID09IDAKKwkgICYmIHBpcGUtPmRsaW1bdCAtIHBdID09ICdcMCcpCisJ eworCSAgKnAgPSAnXDAnOworCSAgcGlwZS0+c2hlbGxfY21kID0gc2tpcF9z cGFjZXMgKHQpOworCSAgYnJlYWs7CisJfQorCisgICAgICAgcCA9IHNraXBf c3BhY2VzICh0KTsKKyAgICB9CisKKyAgZGlzY2FyZF9jbGVhbnVwcyAoY2xl YW51cCk7CisgIHJldHVybiBwaXBlOworfQorCisvKiBSdW4gZXhlY3V0ZV9j b21tYW5kIGZvciBQSVBFIGFuZCBGUk9NX1RUWS4gIFdyaXRlIG91dHB1dCB0 byB0aGUgcGlwZSwgZG8gbm90CisgICBkaXNwbGF5IGl0IHRvIHRoZSBzY3Jl ZW4uICAqLworCitzdGF0aWMgdm9pZAorZXhlY3V0ZV9jb21tYW5kX3RvX3Bp cGUgKHN0cnVjdCBwaXBlX29iaiAqcGlwZSwgaW50IGZyb21fdHR5KQorewor ICBjaGFyICphcmd2WzRdOworICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cDsK KyAgc3RydWN0IHVpX2ZpbGUgKmZwOworICBpbnQgc3RhdHVzOworICBjb25z dCBjaGFyICplcnJtc2c7CisgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0 aW9uIGV4Y2VwdGlvbjsKKworICBhcmd2WzBdID0gU0hFTEw7CisgIGFyZ3Zb MV0gPSBPUFRJT05fVE9fU0hFTEw7CisgIGFyZ3ZbMl0gPSBwaXBlLT5zaGVs bF9jbWQ7CisgIGFyZ3ZbM10gPSBOVUxMOworCisgIHBpcGUtPnBleCA9IHBl eF9pbml0IChQRVhfVVNFX1BJUEVTLCBhcmd2WzBdLCBOVUxMKTsKKyAgcGlw ZS0+aGFuZGxlID0gcGV4X2lucHV0X3BpcGUgKHBpcGUtPnBleCwgMCk7CisK KyAgaWYgKHBpcGUtPmhhbmRsZSA9PSBOVUxMKQorICAgIGVycm9yIChfKCJG YWlsZWQgdG8gY3JlYXRlIHBpcGUiKSk7CisKKyAgZXJybXNnID0gcGV4X3J1 biAocGlwZS0+cGV4LCBQRVhfTEFTVCwgYXJndlswXSwgYXJndiwgTlVMTCwg TlVMTCwgJnN0YXR1cyk7CisKKyAgaWYgKGVycm1zZyAhPSBOVUxMKQorICAg IGVycm9yIChfKCJGYWlsZWQgdG8gZXhlY3V0ZSBzaGVsbC1jb21tYW5kIGAl cycgb24gcGlwZTogJXMgJXMiKSwKKwkgICBwaXBlLT5zaGVsbF9jbWQsIGVy cm1zZywgc2FmZV9zdHJlcnJvciAoc3RhdHVzKSk7CisKKyAgLyogR0RCX1NU RE9VVCBzaG91bGQgYmUgYmV0dGVyIGFscmVhZHkgcmVzdG9yZWQgZHVyaW5n IHRoZXNlCisgICAgIHJlc3RvcmF0aW9uIGNhbGxiYWNrcy4gICovCisgIGNs ZWFudXAgPSBzZXRfYmF0Y2hfZmxhZ19hbmRfbWFrZV9jbGVhbnVwX3Jlc3Rv cmVfcGFnZV9pbmZvICgpOworICBmcCA9IHN0ZGlvX2ZpbGVvcGVuIChwaXBl LT5oYW5kbGUpOworICBtYWtlX2NsZWFudXBfdWlfZmlsZV9kZWxldGUgKGZw KTsKKyAgbWFrZV9jbGVhbnVwX3Jlc3RvcmVfdWlfZmlsZSAoJmdkYl9zdGRv dXQpOworICBtYWtlX2NsZWFudXBfcmVzdG9yZV91aV9maWxlICgmZ2RiX3N0 ZGVycik7CisgIG1ha2VfY2xlYW51cF9yZXN0b3JlX3VpX2ZpbGUgKCZnZGJf c3RkbG9nKTsKKyAgbWFrZV9jbGVhbnVwX3Jlc3RvcmVfdWlfZmlsZSAoJmdk Yl9zdGR0YXJnKTsKKyAgbWFrZV9jbGVhbnVwX3Jlc3RvcmVfdWlfZmlsZSAo JmdkYl9zdGR0YXJnZXJyKTsKKworICBpZiAodWlfb3V0X3JlZGlyZWN0IChj dXJyZW50X3Vpb3V0LCBmcCkgPCAwKQorICAgIHdhcm5pbmcgKF8oIkN1cnJl bnQgb3V0cHV0IHByb3RvY29sIGRvZXMgbm90IHN1cHBvcnQgcmVkaXJlY3Rp b24iKSk7CisgIGVsc2UgCisgICAgbWFrZV9jbGVhbnVwX3VpX291dF9yZWRp cmVjdF9wb3AgKGN1cnJlbnRfdWlvdXQpOworCisgIGdkYl9zdGRvdXQgPSBm cDsKKyAgZ2RiX3N0ZGVyciA9IGZwOworICBnZGJfc3RkbG9nID0gZnA7Cisg IGdkYl9zdGR0YXJnID0gZnA7CisgIGdkYl9zdGR0YXJnZXJyID0gZnA7CisK KyAgVFJZX0NBVENIIChleGNlcHRpb24sIFJFVFVSTl9NQVNLX0VSUk9SKQor ICAgIHsKKyAgICAgIGV4ZWN1dGVfY29tbWFuZCAocGlwZS0+Z2RiX2NtZCwg ZnJvbV90dHkpOworICAgIH0KKworICBpZiAoZXhjZXB0aW9uLnJlYXNvbiA8 IDApCisgICAgZXhjZXB0aW9uX3ByaW50IChnZGJfc3RkZXJyLCBleGNlcHRp b24pOworCisgIGRvX2NsZWFudXBzIChjbGVhbnVwKTsKK30KKworLyogRXhl Y3V0ZSB0aGUgcGlwZSBjb21tYW5kIHdpdGggYXJndW1lbnQgQVJHIGFuZCBG Uk9NX1RUWS4gICovCisKK3N0YXRpYyB2b2lkCitwaXBlX2NvbW1hbmQgKGNo YXIgKmFyZywgaW50IGZyb21fdHR5KQoreworICBzdHJ1Y3QgcGlwZV9vYmog KnBpcGUgPSBjb25zdHJ1Y3RfcGlwZSAoYXJnKTsKKyAgc3RydWN0IGNsZWFu dXAgKmNsZWFudXAgPSBtYWtlX2NsZWFudXAgKGRlc3RydWN0X3BpcGUsIHBp cGUpOworCisgIGV4ZWN1dGVfY29tbWFuZF90b19waXBlIChwaXBlLCBmcm9t X3R0eSk7CisgIGRvX2NsZWFudXBzIChjbGVhbnVwKTsKK30KKworLyogTW9k dWxlIGluaXRpYWxpemF0aW9uLiAgKi8KKwordm9pZAorX2luaXRpYWxpemVf cGlwZSAodm9pZCkKK3sKKyAgYWRkX2NtZCAoInBpcGUiLCBub19jbGFzcywg cGlwZV9jb21tYW5kLCBfKCJcCitDcmVhdGUgcGlwZSB0byBwYXNzIGdkYi1j b21tYW5kIG91dHB1dCB0byBhIHNoZWxsIGNvbW1hbmQgZm9yIHByb2Nlc3Np bmcuXG5cCitBcmd1bWVudHMgYXJlIGEgZGVsaW1pdGVyLCBmb2xsb3dlZCBi eSBhIGdkYi1jb21tYW5kLCB0aGVuIHRoZSBzYW1lXG5cCitkZWxpbWl0ZXIg YWdhaW4gYW5kIGZpbmFsbHkgYSBzaGVsbC1jb21tYW5kLlxuXG5cCitUaGUg ZGVsaW1pdGVyIGNhbiBiZSBhIHN0cmluZyBvZiBhcmJpdHJhcnkgbGVuZ3Ro IGNvbnRhaW5pbmcgbm8gd2hpdGVzcGFjZVxuXAorYW5kIHNob3VsZCBub3Qg aGF2ZSBhbnkgbGVhZGluZyBgLScuIiksCisJICAgJmNtZGxpc3QpOworfQpk aWZmIC1ydXAgc3JjL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nIGRzdC9nZGIv dGVzdHN1aXRlL0NoYW5nZUxvZwotLS0gc3JjL2dkYi90ZXN0c3VpdGUvQ2hh bmdlTG9nCTIwMTEtMDgtMjcgMjA6MzU6MzguODcxOTMzOTk4ICswNTMwCisr KyBkc3QvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cJMjAxMS0wOC0yOCAxNjoy MTozMC4wMDAwMDAwMDAgKzA1MzAKQEAgLTEsMyArMSw3IEBACisyMDExLTA4 LTI5ICBBYmhpaml0IEhhbGRlciAgPGFiaGlqaXQuay5oYWxkZXJAZ21haWwu Y29tPgorCisJKiBnZGIuYmFzZS9waXBlLmV4cDogTmV3IGZpbGUuCisKIDIw MTEtMDgtMjYgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KIAogCSogZ2RiLmJhc2UvY29tbWFuZHMuZXhwIChlcnJvcl9j bGVhcnNfY29tbWFuZHNfbGVmdCk6IE5ldyBmdW5jdGlvbi4KZGlmZiAtcnVw IHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3BpcGUuZXhwIGRzdC9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3BpcGUuZXhwCi0tLSBzcmMvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9waXBlLmV4cAkyMDExLTA4LTE2IDIyOjM3OjQ1Ljk2 OTM1MTExOSArMDUzMAorKysgZHN0L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv cGlwZS5leHAJMjAxMS0wOC0yNSAwMzoxMDowNS4wMDAwMDAwMDAgKzA1MzAK QEAgLTAsMCArMSw1MiBAQAorIyBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKworIyBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBM aWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworIwor IyB0ZXN0IGdkYiBwaXBlIGNvbW1hbmRzCisjCisKK3NldCB0ZXN0ICJwaXBl Igorc2V0IHRlbXBmaWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0fS54 CisKK2dkYl9leGl0CitnZGJfc3RhcnQKKworZ2RiX3Rlc3QgInBpcGUiICJO byBhcmd1bWVudCBpcyBzcGVjaWZpZWQiCitnZGJfdGVzdCAicGlwZSB8IiAi Tm8gZ2RiLWNvbW1hbmQgaXMgc3BlY2lmaWVkIgorZ2RiX3Rlc3QgInBpcGUg LXgiICJEZWxpbWl0ZXIgcGF0dGVybiBzaG91bGQgbm90IHN0YXJ0IHdpdGgg Jy0nIgorZ2RiX3Rlc3QgInBpcGUgfCBwcmludCAneCciICJObyBzaGVsbC1j b21tYW5kIGlzIHNwZWNpZmllZCIKK2dkYl90ZXN0ICJwaXBlIHwgcHJpbnQg J3gnIHw8IGNhdCIgIk5vIHNoZWxsLWNvbW1hbmQgaXMgc3BlY2lmaWVkIgor Z2RiX3Rlc3QgInBpcGUgfDwgcHJpbnQgJ3gnIHwgY2F0IiAiTm8gc2hlbGwt Y29tbWFuZCBpcyBzcGVjaWZpZWQiCitnZGJfdGVzdCAicGlwZSB8IHByaW50 ICd4JyA+fCBjYXQiICJObyBzaGVsbC1jb21tYW5kIGlzIHNwZWNpZmllZCIK K2dkYl90ZXN0ICJwaXBlID58IHByaW50ICd4JyB8IGNhdCIgIk5vIHNoZWxs LWNvbW1hbmQgaXMgc3BlY2lmaWVkIgorZ2RiX3Rlc3QgInBpcGUgfCBwcmlu dCAneCcgfCBjYXQiICIgPSAxMjAgJ3gnIgorZ2RiX3Rlc3QgInBpcGUgfCBw cmludCAneCcgfCBjYXQgfCBjYXQiICIgPSAxMjAgJ3gnIgorCitmaWxlIGRl bGV0ZSAkdGVtcGZpbGUKK2dkYl90ZXN0X25vX291dHB1dCAicGlwZSB8IHAg J3gnIHwgY2F0ID4kdGVtcGZpbGUiCitpZiAhW2ZpbGUgZXhpc3RzICR0ZW1w ZmlsZV0gdGhlbiB7CisgICAgcGVycm9yICIkdGVtcGZpbGUgZG9lcyBub3Qg ZXhpc3QuIgorICAgIHJldHVybiAwCit9IGVsc2UgeworICAgIHNldCBmcCBb b3BlbiAkdGVtcGZpbGUgcl0KKyAgICBzZXQgZmRhdGEgW3JlYWQgJGZwXQor ICAgIGNsb3NlICRmcAorICAgIHJlZ3N1YiAtYWxsIHtcJFswLTldK30gJGZk YXRhIHt9IHBhdHRlcm4KKyAgICBpZiAhW3N0cmluZyBtYXRjaCAkcGF0dGVy biAiID0gMTIwICd4J1xuIl0gdGhlbiB7CisJZmFpbCAkdGVzdAorICAgIH0g ZWxzZSB7CisJcGFzcyAkdGVzdAorICAgIH0KK30K --0016e64c1c98d7435504abce834c--