From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13449 invoked by alias); 6 Jan 2012 18:11:31 -0000 Received: (qmail 13437 invoked by uid 22791); 6 Jan 2012 18:11:28 -0000 X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=AWL,BAYES_50,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_BJ,TW_TD,TW_XC X-Spam-Check-By: sourceware.org Received: from mail-ww0-f43.google.com (HELO mail-ww0-f43.google.com) (74.125.82.43) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 06 Jan 2012 18:11:12 +0000 Received: by wgbds11 with SMTP id ds11so1578778wgb.12 for ; Fri, 06 Jan 2012 10:11:10 -0800 (PST) MIME-Version: 1.0 Received: by 10.180.76.233 with SMTP id n9mr8985728wiw.14.1325873470820; Fri, 06 Jan 2012 10:11:10 -0800 (PST) Received: by 10.180.107.69 with HTTP; Fri, 6 Jan 2012 10:11:10 -0800 (PST) In-Reply-To: References: Date: Fri, 06 Jan 2012 18:11:00 -0000 Message-ID: Subject: Re: [PATCH] Implementation of pipe to pass GDB's command output to the shell. From: Abhijit Halder To: "gdb-patches@sourceware.org ml" Content-Type: multipart/mixed; boundary=f46d043c7cf63ecfb904b5dff9d9 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: 2012-01/txt/msg00242.txt.bz2 --f46d043c7cf63ecfb904b5dff9d9 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1069 On Tue, Jan 3, 2012 at 10:34 PM, Abhijit Halder wrote: > Hi all, > > The copyright assignment is yet to be accomplished, it's almost in > final stage. Meanwhile I want you to please do a final review of the > changes I made. > > This patch implements a new gdb command namely, "pipe" to pass gdb > command output to a shell command for further processing. This patch > includes necessary documentation change and test-cases as well. > > Thanks, > Abhijit Halder One last minute correction. >+/* Run execute_command for PIPE and FROM_TTY. Write output to the pipe, do not >+ display it to the screen. */ >+ >+static void >+execute_command_to_pipe (struct pipe_obj *pipe, int from_tty) >+{ >+ char *argv[4]; >+ struct cleanup *cleanup; >+ struct ui_file *fp; >+ int status; >+ const char *errmsg; >+ volatile struct gdb_exception exception; >+ const char *shell; Thie following correction is required to fix compilation error. char *shell; >+ >+ if (*pipe->gdb_cmd == '\0') >+ error (_("No gdb-command is specified.")); >+ --f46d043c7cf63ecfb904b5dff9d9 Content-Type: text/plain; charset=US-ASCII; name="ChangeLog.txt" Content-Disposition: attachment; filename="ChangeLog.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gx3i88ob1 Content-length: 387 MjAxMi0wMS0wMyAgQWJoaWppdCBIYWxkZXIgIDxhYmhpaml0LmsuaGFsZGVy QGdtYWlsLmNvbT4KCglJbXBsZW1lbnRhdGlvbiBvZiBwaXBlIHRvIHBhc3Mg R0RCJ3MgY29tbWFuZCBvdXRwdXQgdG8gYSBzaGVsbAoJY29tbWFuZCBmb3Ig cHJvY2Vzc2luZy4KCgkqIE5FV1M6IEFkZCBuZXdzIGl0ZW0gZm9yIHRoZSBu ZXcgY29tbWFuZCAicGlwZSIuCgkqIHBpcGUuYzogTmV3IGZpbGUuCgkqIE1h a2VmaWxlLmluIChTRklMRVMpOiBBZGQgcGlwZS5jLgoJKENPTU1PTl9PQlMp OiBBZGQgcGlwZS5vLgo= --f46d043c7cf63ecfb904b5dff9d9 Content-Type: text/x-patch; charset=US-ASCII; name="gdb-pipecmd-new.patch" Content-Disposition: attachment; filename="gdb-pipecmd-new.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gx3i7kjo0 Content-length: 16804 ZGlmZiAtcnVwIHNyYy9nZGIvZG9jL2dkYi50ZXhpbmZvIGRzdC9nZGIvZG9j L2dkYi50ZXhpbmZvCi0tLSBzcmMvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEy LTAxLTA2IDE0OjQ2OjQzLjg4MTU2ODAyMSArMDUzMAorKysgZHN0L2dkYi9k b2MvZ2RiLnRleGluZm8JMjAxMi0wMS0wNiAxNTo1OTowOC45NDU1NjgyMDcg KzA1MzAKQEAgLTEzNjcsNiArMTM2Nyw1NiBAQCBFeGVjdXRlIHRoZSBAY29k ZXttYWtlfSBwcm9ncmFtIHdpdGggdGhlCiBhcmd1bWVudHMuICBUaGlzIGlz IGVxdWl2YWxlbnQgdG8gQHNhbXB7c2hlbGwgbWFrZSBAdmFye21ha2UtYXJn c319LgogQGVuZCB0YWJsZQogCitJZiB5b3Ugd2FudCB0byBwcm9jZXNzIHRo ZSBvdXRwdXQgb2YgYSBAdmFsdWV7R0RCTn0gY29tbWFuZCB1c2luZyBzb21l IHNoZWxsCitjb21tYW5kIG9yIHNvbWUgc2NyaXB0LCB0aGF0IGNhbiBiZSBk b25lIGJ5IHVzaW5nIHRoZSBjb21tYW5kIEBjb2Rle3BpcGV9LgorCitAdGFi bGUgQGNvZGUKK0BraW5kZXggcGlwZQorQGl0ZW0gcGlwZSBAdmFye2RsaW19 IEB2YXJ7Z2RiY21kfSBAdmFye2RsaW19IEB2YXJ7c2hlbGxjbWR9CitAdmFy e2RsaW19IGlzIGEgc3RyaW5nIG9mIGFyYml0cmFyeSBsZW5ndGgsIGNvbnRh aW5pbmcgbm8gd2hpdGVzcGFjZSBhbmQgbm8KK2xlYWRpbmcgQHNhbXB7LX0s IGFjdHMgYXMgYSBzZXBhcmF0b3IgYmV0d2VlbiBhIEB2YWx1ZXtHREJOfSBj b21tYW5kCitAdmFye2dkYmNtZH0gYW5kIGEgc2hlbGwgY29tbWFuZCBAdmFy e3NoZWxsY21kfS4gIFRoZSBzaGVsbCBjb21tYW5kIHNob3VsZCBiZQoraW4g Y29tcGxpYW5jZSB3aXRoIHRoZSBzeW50YXggb2YgdGhlIHNoZWxsLiAgVGhl IEB2YXJ7ZGxpbX0gcGF0dGVybiBzaG91bGQgbm90CithcHBlYXIgaW4gQHZh cntnZGJjb21kfSwgb3RoZXJ3aXNlIHRoZSBwYXJzaW5nIHdpbGwgZmFpbDsg YWx0aG91Z2ggaXQgbWF5CithcHBlYXIgaW4gQHZhcntzaGVsbGNtZH0uCisK K0lmIGV4aXN0cywgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIEBjb2Rle1NI RUxMfSBkZXRlcm1pbmVzIGluIHdoaWNoIHNoZWxsIHRvCitydW4gdGhlIHNo ZWxsIGNvbW1hbmQuICBPdGhlcndpc2UgQHZhbHVle0dEQk59IHVzZXMgdGhl IGRlZmF1bHQgc2hlbGwKKyhAZmlsZXsvYmluL3NofSBvbiBVbml4IHN5c3Rl bXMsIEBmaWxle0NPTU1BTkQuQ09NfSBvbiBNUy1ET1MsIGV0Yy4pLgorQGVu ZCB0YWJsZQorCitAc21hbGxleGFtcGxlCisoQHZhbHVle0dEQlB9KSBAYntw dHlwZSBkZF90Ymx9Cit0eXBlID0gc3RydWN0IGRkIEB7CisgICAgaW50IGRk X2hhbmRsZTsKKyAgICBjb25zdCBjaGFyICpkZF9uYW1lOworICAgIGludCBk ZF9tYWpvcjsKKyAgICBpbnQgZGRfbWlub3I7CisgICAgdm9pZCAqZGRfY29k ZTsKKyAgICB2b2lkICpkZF9kYXRhOworQH0gWzEwMjRdCisoQHZhbHVle0dE QlB9KSBAYntwaXBlIDxicj4gcHJpbnQgZGRfdGJsIDxicj4gc2VkICdzL0B9 L1xuL2cnIHwgZ3JlcCBACisiXC50ZXN0X2RkIiB8IHRyICcsJyAnXG4nfQor CisgIEB7ZGRfaGFuZGxlID0gMTAKKyAgZGRfbmFtZSA9IDB4ODA0ODUzOCAi LnRlc3RfZGQiCisgIGRkX21ham9yID0gMTAwCisgIGRkX21pbm9yID0gMAor ICBkZF9jb2RlID0gMHhjYworICBkZF9kYXRhID0gMHg4MAorQGVuZCBzbWFs bGV4YW1wbGUKKworSW4gdGhlIGFib3ZlIGV4YW1wbGUgQHNhbXB7PGJyPn0g YWN0cyBhcyBhIGRlbGltaXRlci4gIFRoZSBvdXRwdXQgb2YKK0BzYW1we3By aW50IGRkX3RibH0gaXMgcGFzc2VkIHRvIHRoZSBzaGVsbCBjb21tYW5kIEBz YW1we3NlZCAncy9AfS9cbi9nJyB8IEAKK2dyZXAgIi50ZXN0X2RkIiB8IHRy ICcsJyAnXG4nfSBmb3IgcHJvY2Vzc2luZy4gIEBzYW1we3x9IGNvdWxkIGJl IG9uZSBvZiB0aGUKK25hdHVyYWwgY2hvaXNlIG9mIGJlaW5nIHVzZWQgYXMg dGhlIGRlbGltaXRlci4gIEluIHRoZSBhYm92ZSBleGFtcGxlIHdlIGhhdmUK K2F2b2lkZWQgdGhlIHNhbWUgZm9yIHJlYWRhYmlsaXR5IHB1cnBvc2UuCisK K0luIHRoZSBnaXZlbiBleGFtcGxlIHRoZSBvdXRwdXQgb2YgQHZhbHVle0dE Qk59IGNvbW1hbmQgQHNhbXB7cHJpbnQgZGRfdGJsfSBpcworaHVnZSBhbmQg bm90IHdlbGwgZm9ybWF0ZWQuICBUaGUgdXNlIG9mIHNoZWxsIGNvbW1hbmRz IGxpa2UgQGNvbW1hbmR7c2VkfSwKK0Bjb21tYW5ke3RyfSBhbmQgQGNvbW1h bmR7Z3JlcH0gZWFzZSB0aGUgc2VhcmNoaW5nIG9mIGRlc2lyZWQgcGF0dGVy biBhbmQgaGVuY2UKK2Vhc2UgZGVidWdnaW5nLgorCiBAbm9kZSBMb2dnaW5n IE91dHB1dAogQHNlY3Rpb24gTG9nZ2luZyBPdXRwdXQKIEBjaW5kZXggbG9n Z2luZyBAdmFsdWV7R0RCTn0gb3V0cHV0CmRpZmYgLXJ1cCBzcmMvZ2RiL01h a2VmaWxlLmluIGRzdC9nZGIvTWFrZWZpbGUuaW4KLS0tIHNyYy9nZGIvTWFr ZWZpbGUuaW4JMjAxMi0wMS0wNiAxNTo0ODozNy40MDU1NjgzNTAgKzA1MzAK KysrIGRzdC9nZGIvTWFrZWZpbGUuaW4JMjAxMi0wMS0wNiAxNTo1OTowOC45 NDU1NjgyMDcgKzA1MzAKQEAgLTcxOCw3ICs3MTgsNyBAQCBTRklMRVMgPSBh ZGEtZXhwLnkgYWRhLWxhbmcuYyBhZGEtdHlwZXByCiAJb2JqYy1leHAueSBv YmpjLWxhbmcuYyBcCiAJb2JqZmlsZXMuYyBvc2FiaS5jIG9ic2VydmVyLmMg b3NkYXRhLmMgXAogCW9wZW5jbC1sYW5nLmMgXAotCXAtZXhwLnkgcC1sYW5n LmMgcC10eXBlcHJpbnQuYyBwLXZhbHByaW50LmMgcGFyc2UuYyBwcmludGNt ZC5jIFwKKwlwLWV4cC55IHAtbGFuZy5jIHAtdHlwZXByaW50LmMgcC12YWxw cmludC5jIHBhcnNlLmMgcGlwZS5jIHByaW50Y21kLmMgXAogCXByb2Mtc2Vy dmljZS5saXN0IHByb2dzcGFjZS5jIFwKIAlwcm9sb2d1ZS12YWx1ZS5jIHBz eW10YWIuYyBcCiAJcmVnY2FjaGUuYyByZWdncm91cHMuYyByZW1vdGUuYyBy ZW1vdGUtZmlsZWlvLmMgcmV2ZXJzZS5jIFwKQEAgLTg3NSw3ICs4NzUsNyBA QCBDT01NT05fT0JTID0gJChERVBGSUxFUykgJChDT05GSUdfT0JTKSAkCiAJ bWktY29tbW9uLm8gXAogCWV2ZW50LWxvb3AubyBldmVudC10b3AubyBpbmYt bG9vcC5vIGNvbXBsZXRlci5vIFwKIAlnZGJhcmNoLm8gYXJjaC11dGlscy5v IGdkYnR5cGVzLm8gb3NhYmkubyBjb3B5aW5nLm8gXAotCW1lbWF0dHIubyBt ZW0tYnJlYWsubyB0YXJnZXQubyBwYXJzZS5vIGxhbmd1YWdlLm8gYnVpbGRz eW0ubyBcCisJbWVtYXR0ci5vIG1lbS1icmVhay5vIHRhcmdldC5vIHBhcnNl Lm8gcGlwZS5vIGxhbmd1YWdlLm8gYnVpbGRzeW0ubyBcCiAJZmluZGNtZC5v IFwKIAlzdGQtcmVncy5vIFwKIAlzaWduYWxzLm8gXApkaWZmIC1ydXAgc3Jj L2dkYi9ORVdTIGRzdC9nZGIvTkVXUwotLS0gc3JjL2dkYi9ORVdTCTIwMTIt MDEtMDMgMTk6Mzg6MDkuNzIxMDAxNDYyICswNTMwCisrKyBkc3QvZ2RiL05F V1MJMjAxMi0wMS0wNiAxNTo1OTowOC45NDU1NjgyMDcgKzA1MzAKQEAgLTEz OCw2ICsxMzgsOSBAQAogICAiISIgaXMgbm93IGFuIGFsaWFzIG9mIHRoZSAi c2hlbGwiIGNvbW1hbmQuCiAgIE5vdGUgdGhhdCBubyBzcGFjZSBpcyBuZWVk ZWQgYmV0d2VlbiAiISIgYW5kIFNIRUxMIENPTU1BTkQuCiAKKyogTmV3IGNv bW1hbmQgInBpcGUiIGhhcyBiZWVuIGFkZGVkIHRvIG1ha2UgR0RCJ3MgY29t bWFuZCBvdXRwdXQgYXZhaWxhYmxlIHRvIGEKKyAgc2hlbGwgY29tbWFuZCBm b3IgcHJvY2Vzc2luZy4KKwogKiBDaGFuZ2VkIGNvbW1hbmRzCiAKIHdhdGNo IEVYUFJFU1NJT04gbWFzayBNQVNLX1ZBTFVFCmRpZmYgLXJ1cCBzcmMvZ2Ri L3BpcGUuYyBkc3QvZ2RiL3BpcGUuYwotLS0gc3JjL2dkYi9waXBlLmMJMjAx Mi0wMS0wNiAxNTo0ODoxNC45MTc1NjgwMTkgKzA1MzAKKysrIGRzdC9nZGIv cGlwZS5jCTIwMTItMDEtMDYgMTU6NTk6MDguOTQ1NTY4MjA3ICswNTMwCkBA IC0wLDAgKzEsMjM5IEBACisvKiBFdmVyeXRoaW5nIGFib3V0IHBpcGUgY29t bWFuZCwgZm9yIEdEQi4KKworICAgQ29weXJpZ2h0IChDKSAyMDEyIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMg cGFydCBvZiBHREIuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cisg ICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisK KyNpbmNsdWRlICJkZWZzLmgiCisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNs dWRlICJnZGJfc3RyaW5nLmgiCisjaW5jbHVkZSAidWktZmlsZS5oIgorI2lu Y2x1ZGUgInVpLW91dC5oIgorI2luY2x1ZGUgImNsaS9jbGktdXRpbHMuaCIK KyNpbmNsdWRlICJnZGJjbWQuaCIKKyNpbmNsdWRlICJsaWJpYmVydHkuaCIK KyNpbmNsdWRlICJleGNlcHRpb25zLmgiCisKKyNpZiBkZWZpbmVkIChfX01J TkdXMzJfXykKKyMgZGVmaW5lIERFRkFVTFRfU0hFTEwgImNtZC5leGUiCisj IGRlZmluZSBPUFRJT05fVE9fU0hFTEwgIi9jIgorI2Vsc2UKKyMgZGVmaW5l IERFRkFVTFRfU0hFTEwgIi9iaW4vc2giCisjIGRlZmluZSBPUFRJT05fVE9f U0hFTEwgIi1jIgorI2VuZGlmCisKKy8qIFN0cnVjdHVyZSB0byBlbmNhcHN1 bGF0ZSBhbGwgZW50aXRpZXMgYXNzb2NpYXRlZCB3aXRoIHBpcGUuICAqLwor CitzdHJ1Y3QgcGlwZV9vYmoKK3sKKyAgLyogVGhlIGRlbGltaXRlciB0byBz ZXBhcmF0ZSBvdXQgZ2RiLWNvbW1hbmQgYW5kIHNoZWxsLWNvbW1hbmQuICBU aGlzIGNhbiBiZQorICAgICBhbnkgYXJiaXRyYXJ5IHN0cmluZyB3aXRob3V0 IGNvbnRhaW5pbmcgYW55IHdoaXRlc3BhY2UuICBUaGVyZSBzaG91bGQgbm90 CisgICAgIGJlIGFueSBsZWFkaW5nICctJyBpbiB0aGUgZGVsaW1pdGVyLiAg Ki8KKyAgY2hhciAqZGxpbTsKKworICAvKiBUaGUgZ2RiLWNvbW1hbmQuICAq LworICBjaGFyICpnZGJfY21kOworCisgIC8qIFRoZSBzaGVsbC1jb21tYW5k LiAgKi8KKyAgY2hhciAqc2hlbGxfY21kOworCisgIC8qIFRoZSBnZGItc2lk ZSBzdHJlYW0gcG9pbnRlciB0byB0aGUgcGlwZS4gICovCisgIEZJTEUgKmhh bmRsZTsKKworICAvKiBUaGUgcGV4IG9iamVjdCB1c2VkIHRvIGNyZWF0ZSBw aXBlbGluZSBiZXR3ZWVuIGdkYiBhbmQgc2hlbGwuICAqLworICBzdHJ1Y3Qg cGV4X29iaiAqcGV4OworfTsKKworLyogRGVzdHJ1Y3QgcGlwZSBvYmplY3Qg cmVmZXJlbmNlZCBieSBBUkcuICAqLworCitzdGF0aWMgdm9pZAorZGVzdHJ1 Y3RfcGlwZSAodm9pZCAqYXJnKQoreworICBzdHJ1Y3QgcGlwZV9vYmogKnBp cGUgPSAoc3RydWN0IHBpcGVfb2JqICopIGFyZzsKKworICBpZiAocGlwZS0+ aGFuZGxlICE9IE5VTEwpCisgICAgZmNsb3NlIChwaXBlLT5oYW5kbGUpOwor CisgIGlmIChwaXBlLT5wZXggIT0gTlVMTCkKKyAgICB7CisgICAgICBpbnQg c3RhdHVzOworCisgICAgICAvKiBXYWl0IHRpbGwgdGhlIHByb2Nlc3Mgb24g dGhlIG90aGVyIHNpZGUgb2YgdGhlIHBpcGUgY29tcGxldGVzIGl0cworCSBq b2IgYmVmb3JlIGNsb3NpbmcgaXRzIGZpbGUgZGVzY3JpcHRvcnMuICAqLwor ICAgICAgcGV4X2dldF9zdGF0dXMgKHBpcGUtPnBleCwgMSwgJnN0YXR1cyk7 CisKKyAgICAgIGlmICghV0lGRVhJVEVEIChzdGF0dXMpKQorCXdhcm5pbmcg KF8oIkV4ZWN1dGlvbiBvZiBzaGVsbC1jb21tYW5kIGAlcycgbWF5IG5vdCBi ZSBjb21wbGV0ZWQ6ICVzLiIpLAorCQkgcGlwZS0+c2hlbGxfY21kLCBzYWZl X3N0cmVycm9yIChzdGF0dXMpKTsKKworICAgICAgcGV4X2ZyZWUgKHBpcGUt PnBleCk7CisgICAgfQorCisgIHhmcmVlIChwaXBlLT5kbGltKTsKKyAgeGZy ZWUgKHBpcGUpOworfQorCisvKiBDb25zdHJ1Y3QgYSBwaXBlIG9iamVjdCBi eSBwYXJzaW5nIGFyZ3VtZW50IEFSRyB0byB0aGUgcGlwZSBjb21tYW5kLiAg Ki8KKworc3RhdGljIHN0cnVjdCBwaXBlX29iaiAqCitjb25zdHJ1Y3RfcGlw ZSAoY29uc3QgY2hhciAqYXJnKQoreworICBzdHJ1Y3QgcGlwZV9vYmogKnBp cGU7CisgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOworICBjaGFyICpwLCAq dDsKKworICBpZiAoYXJnID09IE5VTEwpCisgICAgZXJyb3IgKF8oIk5vIGFy Z3VtZW50IGlzIHNwZWNpZmllZC4iKSk7CisKKyAgcGlwZSA9IFhDTkVXIChz dHJ1Y3QgcGlwZV9vYmopOworICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwIChk ZXN0cnVjdF9waXBlLCBwaXBlKTsKKworICBwID0geHN0cmR1cCAoYXJnKTsK KyAgcGlwZS0+ZGxpbSA9IHA7CisKKyAgaWYgKCpwaXBlLT5kbGltID09ICct JykKKyAgICBlcnJvciAoXygiRGVsaW1pdGVyIHBhdHRlcm4gc2hvdWxkIG5v dCBzdGFydCB3aXRoIGAtJy4iKSk7CisKKyAgdCA9IHNraXBfdG9fc3BhY2Ug KHApOworICBwID0gc2tpcF9zcGFjZXMgKHQpOworCisgIGlmICgqcCA9PSAn XDAnKQorICAgIGVycm9yIChfKCJObyBnZGItY29tbWFuZCBpcyBzcGVjaWZp ZWQuIikpOworCisgICp0ID0gJ1wwJzsKKyAgcGlwZS0+Z2RiX2NtZCA9IHA7 CisKKyAgZm9yICg7OykKKyAgICB7CisgICAgICB0ID0gc2tpcF90b19zcGFj ZSAocCk7CisKKyAgICAgIGlmICgqdCA9PSAnXDAnKQorCWVycm9yIChfKCJO byBzaGVsbC1jb21tYW5kIGlzIHNwZWNpZmllZC4iKSk7CisKKyAgICAgIC8q IENoZWNrIHdoZXRoZXIgdGhlIHRva2VuIHNlcGFyYXRlZCBieSB3aGl0ZXNw YWNlIG1hdGNoZXMgd2l0aAorCSBkZWxpbWl0ZXIuICAqLyAKKyAgICAgIGlm IChtZW1jbXAgKHAsIHBpcGUtPmRsaW0sICh0IC0gcCkpID09IDAKKwkgICYm IHBpcGUtPmRsaW1bdCAtIHBdID09ICdcMCcpCisJeworCSAgKnAgPSAnXDAn OworCSAgcGlwZS0+c2hlbGxfY21kID0gc2tpcF9zcGFjZXMgKHQpOworCSAg YnJlYWs7CisJfQorCisgICAgICAgcCA9IHNraXBfc3BhY2VzICh0KTsKKyAg ICB9CisKKyAgZGlzY2FyZF9jbGVhbnVwcyAoY2xlYW51cCk7CisgIHJldHVy biBwaXBlOworfQorCisvKiBSdW4gZXhlY3V0ZV9jb21tYW5kIGZvciBQSVBF IGFuZCBGUk9NX1RUWS4gIFdyaXRlIG91dHB1dCB0byB0aGUgcGlwZSwgZG8g bm90CisgICBkaXNwbGF5IGl0IHRvIHRoZSBzY3JlZW4uICAqLworCitzdGF0 aWMgdm9pZAorZXhlY3V0ZV9jb21tYW5kX3RvX3BpcGUgKHN0cnVjdCBwaXBl X29iaiAqcGlwZSwgaW50IGZyb21fdHR5KQoreworICBjaGFyICphcmd2WzRd OworICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cDsKKyAgc3RydWN0IHVpX2Zp bGUgKmZwOworICBpbnQgc3RhdHVzOworICBjb25zdCBjaGFyICplcnJtc2c7 CisgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Y2VwdGlvbjsK KyAgY2hhciAqc2hlbGw7CisKKyAgaWYgKCpwaXBlLT5nZGJfY21kID09ICdc MCcpCisgICAgZXJyb3IgKF8oIk5vIGdkYi1jb21tYW5kIGlzIHNwZWNpZmll ZC4iKSk7CisKKyAgLyogRmlndXJlIG91dCB3aGF0IHNoZWxsIHRoZSB1c2Vy IHByb2dyYW0gaXMgdW5kZXIuICAqLworICBzaGVsbCA9IGdldGVudiAoIlNI RUxMIik7CisgIGlmIChzaGVsbCA9PSBOVUxMKQorICAgIHNoZWxsID0gREVG QVVMVF9TSEVMTDsKKworICBhcmd2WzBdID0gc2hlbGw7CisgIGFyZ3ZbMV0g PSBPUFRJT05fVE9fU0hFTEw7CisgIGFyZ3ZbMl0gPSBwaXBlLT5zaGVsbF9j bWQ7CisgIGFyZ3ZbM10gPSBOVUxMOworCisgIHBpcGUtPnBleCA9IHBleF9p bml0IChQRVhfVVNFX1BJUEVTLCBhcmd2WzBdLCBOVUxMKTsKKyAgcGlwZS0+ aGFuZGxlID0gcGV4X2lucHV0X3BpcGUgKHBpcGUtPnBleCwgMCk7CisKKyAg aWYgKHBpcGUtPmhhbmRsZSA9PSBOVUxMKQorICAgIGVycm9yIChfKCJGYWls ZWQgdG8gY3JlYXRlIHBpcGU6ICVzLiIpLCBzYWZlX3N0cmVycm9yIChlcnJu bykpOworCisgIGVycm1zZyA9IHBleF9ydW4gKHBpcGUtPnBleCwgUEVYX0xB U1QsIGFyZ3ZbMF0sIGFyZ3YsIE5VTEwsIE5VTEwsICZzdGF0dXMpOworCisg IGlmIChlcnJtc2cgIT0gTlVMTCkKKyAgICBlcnJvciAoXygiRmFpbGVkIHRv IGV4ZWN1dGUgc2hlbGwtY29tbWFuZCBgJXMnIG9uIHBpcGU6ICVzOiAlcy4i KSwKKwkgICBwaXBlLT5zaGVsbF9jbWQsIGVycm1zZywgc2FmZV9zdHJlcnJv ciAoc3RhdHVzKSk7CisKKyAgLyogR0RCX1NURE9VVCBzaG91bGQgYmUgYmV0 dGVyIGFscmVhZHkgcmVzdG9yZWQgZHVyaW5nIHRoZXNlCisgICAgIHJlc3Rv cmF0aW9uIGNhbGxiYWNrcy4gICovCisgIGNsZWFudXAgPSBzZXRfYmF0Y2hf ZmxhZ19hbmRfbWFrZV9jbGVhbnVwX3Jlc3RvcmVfcGFnZV9pbmZvICgpOwor ICBmcCA9IHN0ZGlvX2ZpbGVvcGVuIChwaXBlLT5oYW5kbGUpOworICBtYWtl X2NsZWFudXBfdWlfZmlsZV9kZWxldGUgKGZwKTsKKyAgbWFrZV9jbGVhbnVw X3Jlc3RvcmVfdWlfZmlsZSAoJmdkYl9zdGRvdXQpOworICBtYWtlX2NsZWFu dXBfcmVzdG9yZV91aV9maWxlICgmZ2RiX3N0ZGVycik7CisgIG1ha2VfY2xl YW51cF9yZXN0b3JlX3VpX2ZpbGUgKCZnZGJfc3RkbG9nKTsKKyAgbWFrZV9j bGVhbnVwX3Jlc3RvcmVfdWlfZmlsZSAoJmdkYl9zdGR0YXJnKTsKKyAgbWFr ZV9jbGVhbnVwX3Jlc3RvcmVfdWlfZmlsZSAoJmdkYl9zdGR0YXJnZXJyKTsK KworICBpZiAodWlfb3V0X3JlZGlyZWN0IChjdXJyZW50X3Vpb3V0LCBmcCkg PCAwKQorICAgIHdhcm5pbmcgKF8oIkN1cnJlbnQgb3V0cHV0IHByb3RvY29s IGRvZXMgbm90IHN1cHBvcnQgcmVkaXJlY3Rpb24iKSk7CisgIGVsc2UgCisg ICAgbWFrZV9jbGVhbnVwX3VpX291dF9yZWRpcmVjdF9wb3AgKGN1cnJlbnRf dWlvdXQpOworCisgIGdkYl9zdGRvdXQgPSBmcDsKKyAgZ2RiX3N0ZGVyciA9 IGZwOworICBnZGJfc3RkbG9nID0gZnA7CisgIGdkYl9zdGR0YXJnID0gZnA7 CisgIGdkYl9zdGR0YXJnZXJyID0gZnA7CisKKyAgVFJZX0NBVENIIChleGNl cHRpb24sIFJFVFVSTl9NQVNLX0VSUk9SKQorICAgIHsKKyAgICAgIGV4ZWN1 dGVfY29tbWFuZCAocGlwZS0+Z2RiX2NtZCwgZnJvbV90dHkpOworICAgIH0K KworICBpZiAoZXhjZXB0aW9uLnJlYXNvbiA8IDApCisgICAgZXhjZXB0aW9u X3ByaW50IChnZGJfc3RkZXJyLCBleGNlcHRpb24pOworCisgIGRvX2NsZWFu dXBzIChjbGVhbnVwKTsKK30KKworLyogRXhlY3V0ZSB0aGUgcGlwZSBjb21t YW5kIHdpdGggYXJndW1lbnQgQVJHIGFuZCBGUk9NX1RUWS4gICovCisKK3N0 YXRpYyB2b2lkCitwaXBlX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21f dHR5KQoreworICBzdHJ1Y3QgcGlwZV9vYmogKnBpcGUgPSBjb25zdHJ1Y3Rf cGlwZSAoYXJnKTsKKyAgc3RydWN0IGNsZWFudXAgKmNsZWFudXAgPSBtYWtl X2NsZWFudXAgKGRlc3RydWN0X3BpcGUsIHBpcGUpOworCisgIGV4ZWN1dGVf Y29tbWFuZF90b19waXBlIChwaXBlLCBmcm9tX3R0eSk7CisgIGRvX2NsZWFu dXBzIChjbGVhbnVwKTsKK30KKworLyogTW9kdWxlIGluaXRpYWxpemF0aW9u LiAgKi8KKwordm9pZAorX2luaXRpYWxpemVfcGlwZSAodm9pZCkKK3sKKyAg YWRkX2NtZCAoInBpcGUiLCBub19jbGFzcywgcGlwZV9jb21tYW5kLCBfKCJc CitDcmVhdGUgcGlwZSB0byBwYXNzIGdkYi1jb21tYW5kIG91dHB1dCB0byBh IHNoZWxsIGNvbW1hbmQgZm9yIHByb2Nlc3NpbmcuXG5cCitBcmd1bWVudHMg YXJlIGEgZGVsaW1pdGVyLCBmb2xsb3dlZCBieSBhIGdkYi1jb21tYW5kLCB0 aGVuIHRoZSBzYW1lXG5cCitkZWxpbWl0ZXIgYWdhaW4gYW5kIGZpbmFsbHkg YSBzaGVsbC1jb21tYW5kLlxuXG5cCitUaGUgZGVsaW1pdGVyIGNhbiBiZSBh IHN0cmluZyBvZiBhcmJpdHJhcnkgbGVuZ3RoIGNvbnRhaW5pbmcgbm8gd2hp dGVzcGFjZVxuXAorYW5kIHNob3VsZCBub3QgaGF2ZSBhbnkgbGVhZGluZyBg LScuIiksCisJICAgJmNtZGxpc3QpOworfQpkaWZmIC1ydXAgc3JjL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvcGlwZS5leHAgZHN0L2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvcGlwZS5leHAKLS0tIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL3BpcGUuZXhwCTIwMTEtMDktMTMgMTY6Mzc6MDQuMjk0Mjc3MjUyICsw NTMwCisrKyBkc3QvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9waXBlLmV4cAky MDEyLTAxLTA2IDE1OjU5OjA4Ljk0NTU2ODIwNyArMDUzMApAQCAtMCwwICsx LDUxIEBACisjIENvcHlyaWdodCAyMDEyIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9y CisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisj IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisjCisjIHRlc3QgZ2Ri IHBpcGUgY29tbWFuZHMKKyMKKworc2V0IHRlc3QgInBpcGUiCitzZXQgdGVt cGZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3R9LngKKworZ2RiX2V4 aXQKK2dkYl9zdGFydAorCitnZGJfdGVzdCAicGlwZSIgIk5vIGFyZ3VtZW50 IGlzIHNwZWNpZmllZCIKK2dkYl90ZXN0ICJwaXBlIHwiICJObyBnZGItY29t bWFuZCBpcyBzcGVjaWZpZWQiCitnZGJfdGVzdCAicGlwZSAteCIgIkRlbGlt aXRlciBwYXR0ZXJuIHNob3VsZCBub3Qgc3RhcnQgd2l0aCAnLSciCitnZGJf dGVzdCAicGlwZSB8IHByaW50ICd4JyIgIk5vIHNoZWxsLWNvbW1hbmQgaXMg c3BlY2lmaWVkIgorZ2RiX3Rlc3QgInBpcGUgfCBwcmludCAneCcgfDwgY2F0 IiAiTm8gc2hlbGwtY29tbWFuZCBpcyBzcGVjaWZpZWQiCitnZGJfdGVzdCAi cGlwZSB8PCBwcmludCAneCcgfCBjYXQiICJObyBzaGVsbC1jb21tYW5kIGlz IHNwZWNpZmllZCIKK2dkYl90ZXN0ICJwaXBlIHwgcHJpbnQgJ3gnID58IGNh dCIgIk5vIHNoZWxsLWNvbW1hbmQgaXMgc3BlY2lmaWVkIgorZ2RiX3Rlc3Qg InBpcGUgPnwgcHJpbnQgJ3gnIHwgY2F0IiAiTm8gc2hlbGwtY29tbWFuZCBp cyBzcGVjaWZpZWQiCitnZGJfdGVzdCAicGlwZSB8IHByaW50ICd4JyB8IGNh dCIgIiA9IDEyMCAneCciCitnZGJfdGVzdCAicGlwZSB8IHByaW50ICd4JyB8 IGNhdCB8IGNhdCIgIiA9IDEyMCAneCciCisKK2ZpbGUgZGVsZXRlICR0ZW1w ZmlsZQorZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJwaXBlIHwgcCAneCcgfCBjYXQg PiR0ZW1wZmlsZSIKK2lmICFbZmlsZSBleGlzdHMgJHRlbXBmaWxlXSB0aGVu IHsKKyAgICBwZXJyb3IgIiR0ZW1wZmlsZSBkb2VzIG5vdCBleGlzdC4iCisg ICAgcmV0dXJuIDAKK30gZWxzZSB7CisgICAgc2V0IGZwIFtvcGVuICR0ZW1w ZmlsZSByXQorICAgIHNldCBmZGF0YSBbcmVhZCAkZnBdCisgICAgY2xvc2Ug JGZwCisgICAgaWYgIVtyZWdleHAge15cJFswLTldKyA9IDEyMCAneCdcbiR9 ICRmZGF0YV0gdGhlbiB7CisJZmFpbCAkdGVzdAorICAgIH0gZWxzZSB7CisJ cGFzcyAkdGVzdAorICAgIH0KK30K --f46d043c7cf63ecfb904b5dff9d9 Content-Type: text/plain; charset=US-ASCII; name="doc-ChangeLog.txt" Content-Disposition: attachment; filename="doc-ChangeLog.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gx3ib5oo2 Content-length: 151 MjAxMi0wMS0wMyAgQWJoaWppdCBIYWxkZXIgIDxhYmhpaml0LmsuaGFsZGVy QGdtYWlsLmNvbT4KCgkqIGdkYi50ZXhpbmZvIChTaGVsbCBDb21tYW5kcyk6 IEFkZCBwaXBlIGNvbW1hbmQuCg== --f46d043c7cf63ecfb904b5dff9d9 Content-Type: text/plain; charset=US-ASCII; name="testsuite-ChangeLog.txt" Content-Disposition: attachment; filename="testsuite-ChangeLog.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gx3ibg163 Content-length: 122 MjAxMS0wOC0yOSAgQWJoaWppdCBIYWxkZXIgIDxhYmhpaml0LmsuaGFsZGVy QGdtYWlsLmNvbT4KCgkqIGdkYi5iYXNlL3BpcGUuZXhwOiBOZXcgZmlsZS4K --f46d043c7cf63ecfb904b5dff9d9--