From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9951 invoked by alias); 16 Apr 2013 09:29: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 9940 invoked by uid 89); 16 Apr 2013 09:29:25 -0000 X-Spam-SWARE-Status: No, score=-4.7 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_CP autolearn=ham version=3.3.1 Received: from mail-oa0-f41.google.com (HELO mail-oa0-f41.google.com) (209.85.219.41) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Tue, 16 Apr 2013 09:29:24 +0000 Received: by mail-oa0-f41.google.com with SMTP id f4so278612oah.14 for ; Tue, 16 Apr 2013 02:29:22 -0700 (PDT) X-Received: by 10.60.34.202 with SMTP id b10mr549068oej.119.1366104562620; Tue, 16 Apr 2013 02:29:22 -0700 (PDT) MIME-Version: 1.0 Received: by 10.60.13.133 with HTTP; Tue, 16 Apr 2013 02:28:42 -0700 (PDT) In-Reply-To: <516694E8.4040107@codesourcery.com> References: <51665508.5050706@mentor.com> <5166554D.2070906@mentor.com> <516694E8.4040107@codesourcery.com> From: Hui Zhu Date: Tue, 16 Apr 2013 15:22:00 -0000 Message-ID: Subject: Re: [PATCH] store trace default-collect to target [1/6] target, trace and remote To: Yao Qi , "Abid, Hafiz" Cc: Hui Zhu , gdb-patches ml Content-Type: multipart/mixed; boundary=089e013cc0222e5f4304da7701ef X-Virus-Found: No X-SW-Source: 2013-04/txt/msg00465.txt.bz2 --089e013cc0222e5f4304da7701ef Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-length: 4794 Hi Yao and Abid, Thanks for your review. On Thu, Apr 11, 2013 at 6:48 PM, Yao Qi wrote: > On 04/11/2013 02:16 PM, Hui Zhu wrote: >> >> --- a/remote.c >> +++ b/remote.c >> @@ -215,6 +215,8 @@ static int remote_get_trace_status (stru >> static int remote_upload_tracepoints (struct uploaded_tp **utpp); >> >> static int remote_upload_trace_state_variables (struct uploaded_tsv >> **utsvp); >> + >> +static void remote_upload_trace_default_collest (char **collectp); > > ^^^^^^^ typo "collect" Oops, all fixed. > >> >> static void remote_query_supported (void); >> >> @@ -3567,6 +3569,7 @@ remote_start_remote (int from_tty, struc >> { >> struct uploaded_tp *uploaded_tps =3D NULL; >> struct uploaded_tsv *uploaded_tsvs =3D NULL; >> + char *uploaded_default_collest =3D NULL; > > ^^^^^^^ typo. > >> >> if (current_trace_status ()->running) >> printf_filtered (_("Trace is already running on the target.\n")); >> @@ -3581,6 +3584,10 @@ remote_start_remote (int from_tty, struc >> remote_upload_tracepoints (&uploaded_tps); >> >> merge_uploaded_tracepoints (&uploaded_tps); >> + >> + remote_upload_trace_default_collest (&uploaded_default_collest); >> + >> + trace_set_default_collect (uploaded_default_collest); > > > Likewise. > >> } >> >> /* The thread and inferior lists are now synchronized with the >> @@ -10567,6 +10574,23 @@ remote_download_tracepoint (struct bp_lo >> do_cleanups (old_chain); >> } >> >> +static void >> +remote_download_tracepoint_default_collect (char *collect) > > > Add a comment to this function. Fixed. /* Download COLLECT that is default collect string to target. */ > >> >> +static void >> +remote_upload_trace_default_collest (char **collectp) > > > Comments to this function are needed as well. Fixed. /* Download COLLECT that is default collect string to target. */ static void remote_download_tracepoint_default_collect (char *collect) > >> +/* Not overwrite default collect If COLLECT is NULL or its size is 0. = */ >> + >> +void >> +trace_set_default_collect (char *collect) >> +{ >> + if (collect !=3D NULL && strlen (collect) !=3D 0) >> + { >> + xfree (default_collect); >> + default_collect =3D collect; >> + } >> +} > > > It looks incorrect to me. When we change target to a tfile, in which the > default-collect is "", the variable default_collect won't be updated. > > Supposing we have two tfile actions.tf and actions1.tf, the default-colle= ct > is "$regs" and "" respectively, > > (gdb) target tfile testsuite/gdb.trace/actions.tf > (gdb) show default-collect > The list of expressions to collect by default is "$regs". > (gdb) target tfile testsuite/gdb.trace/actions1.tf > (gdb) show default-collect > The list of expressions to collect by default is "$regs". > > I don't have other comments. Agree with you. Updated patch for it. > > -- > Yao (=E9=BD=90=E5=B0=A7) On Thu, Apr 11, 2013 at 10:08 PM, Abid, Hafiz wrote: > Hi Hui, >> >> + putpkt (buf); >> + remote_get_noisy_reply (&target_buf, &target_buf_size); >> + if (strcmp (target_buf, "OK")) >> + warning (_("\ > > > Just a small comment on style. I think it is better to be explicit in such > case and write !=3D 0. Also I was advised by Pedro recently that new pack= ets > should be using packet_ok which will eliminate the need for strcmp here > anyway. > Update there part use packet_ok. >> + putpkt ("qTDC"); >> + getpkt (&rs->buf, &rs->buf_size, 0); >> + if (strncmp (rs->buf, "DC", 2)) >> + { > > Why not remote_get_noisy_reply here. Changed. And I also add "PACKET_qTDC" for this part. But I am not sure set "remote_protocol_packets[PACKET_qTDC].support" inside the function is a good choice or not. > > > Regards, > Abid Post a new version for that. Please help me review it. Best, Hui 2013-04-16 Hui Zhu * remote.c (remote_upload_trace_default_collect): New static. (PACKET_QTDDCsrc, PACKET_qTDC): New. (remote_start_remote): Call remote_upload_trace_default_collect and trace_set_default_collect. (remote_download_tracepoint_default_collect): New. (remote_can_download_tracepoint): Set to_download_tracepoint_default_collect. (remote_upload_trace_default_collect): New. (_initialize_remote): Add QTDDCsrc and qTDC. * target.c (update_current_target): Add to_download_tracepoint_default_collect. * target.h (target_ops): to_download_tracepoint_default_collect. (target_download_tracepoint_default_collect): New. * tracepoint.c (start_tracing): Call target_download_tracepoint_default_collect. (trace_set_default_collect): New. * tracepoint.h (trace_set_default_collect): New extern. --089e013cc0222e5f4304da7701ef Content-Type: text/plain; charset=US-ASCII; name="defc-remote.txt" Content-Disposition: attachment; filename="defc-remote.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hfkvcv580 Content-length: 9586 LS0tIGEvcmVtb3RlLmMKKysrIGIvcmVtb3RlLmMKQEAgLTIxNSw2ICsyMTUs OCBAQCBzdGF0aWMgaW50IHJlbW90ZV9nZXRfdHJhY2Vfc3RhdHVzIChzdHJ1 CiBzdGF0aWMgaW50IHJlbW90ZV91cGxvYWRfdHJhY2Vwb2ludHMgKHN0cnVj dCB1cGxvYWRlZF90cCAqKnV0cHApOwogCiBzdGF0aWMgaW50IHJlbW90ZV91 cGxvYWRfdHJhY2Vfc3RhdGVfdmFyaWFibGVzIChzdHJ1Y3QgdXBsb2FkZWRf dHN2ICoqdXRzdnApOworCitzdGF0aWMgdm9pZCByZW1vdGVfdXBsb2FkX3Ry YWNlX2RlZmF1bHRfY29sbGVjdCAoY2hhciAqKmNvbGxlY3RwKTsKICAgCiBz dGF0aWMgdm9pZCByZW1vdGVfcXVlcnlfc3VwcG9ydGVkICh2b2lkKTsKIApA QCAtMTI4Niw2ICsxMjg4LDggQEAgZW51bSB7CiAgIFBBQ0tFVF9RYnRyYWNl X29mZiwKICAgUEFDS0VUX1FidHJhY2VfYnRzLAogICBQQUNLRVRfcVhmZXJf YnRyYWNlLAorICBQQUNLRVRfUVRERENzcmMsCisgIFBBQ0tFVF9xVERDLAog ICBQQUNLRVRfTUFYCiB9OwogCkBAIC0zNTY3LDYgKzM1NzEsNyBAQCByZW1v dGVfc3RhcnRfcmVtb3RlIChpbnQgZnJvbV90dHksIHN0cnVjCiAgICAgewog ICAgICAgc3RydWN0IHVwbG9hZGVkX3RwICp1cGxvYWRlZF90cHMgPSBOVUxM OwogICAgICAgc3RydWN0IHVwbG9hZGVkX3RzdiAqdXBsb2FkZWRfdHN2cyA9 IE5VTEw7CisgICAgICBjaGFyICp1cGxvYWRlZF9kZWZhdWx0X2NvbGxlY3Qg PSBOVUxMOwogCiAgICAgICBpZiAoY3VycmVudF90cmFjZV9zdGF0dXMgKCkt PnJ1bm5pbmcpCiAJcHJpbnRmX2ZpbHRlcmVkIChfKCJUcmFjZSBpcyBhbHJl YWR5IHJ1bm5pbmcgb24gdGhlIHRhcmdldC5cbiIpKTsKQEAgLTM1ODEsNiAr MzU4NiwxMCBAQCByZW1vdGVfc3RhcnRfcmVtb3RlIChpbnQgZnJvbV90dHks IHN0cnVjCiAgICAgICByZW1vdGVfdXBsb2FkX3RyYWNlcG9pbnRzICgmdXBs b2FkZWRfdHBzKTsKIAogICAgICAgbWVyZ2VfdXBsb2FkZWRfdHJhY2Vwb2lu dHMgKCZ1cGxvYWRlZF90cHMpOworCisgICAgICByZW1vdGVfdXBsb2FkX3Ry YWNlX2RlZmF1bHRfY29sbGVjdCAoJnVwbG9hZGVkX2RlZmF1bHRfY29sbGVj dCk7CisKKyAgICAgIHRyYWNlX3NldF9kZWZhdWx0X2NvbGxlY3QgKHVwbG9h ZGVkX2RlZmF1bHRfY29sbGVjdCk7CiAgICAgfQogCiAgIC8qIFRoZSB0aHJl YWQgYW5kIGluZmVyaW9yIGxpc3RzIGFyZSBub3cgc3luY2hyb25pemVkIHdp dGggdGhlCkBAIC0xMDU2Nyw2ICsxMDU3NiwzMyBAQCByZW1vdGVfZG93bmxv YWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvCiAgIGRvX2NsZWFudXBzIChv bGRfY2hhaW4pOwogfQogCisvKiBEb3dubG9hZCBDT0xMRUNUIHRoYXQgaXMg ZGVmYXVsdCBjb2xsZWN0IHN0cmluZyB0byB0YXJnZXQuICAqLworCitzdGF0 aWMgdm9pZAorcmVtb3RlX2Rvd25sb2FkX3RyYWNlcG9pbnRfZGVmYXVsdF9j b2xsZWN0IChjaGFyICpjb2xsZWN0KQoreworICBjaGFyIGJ1ZltCVUZfU0la RV07CisgIHN0cnVjdCByZW1vdGVfc3RhdGUgKnJzID0gZ2V0X3JlbW90ZV9z dGF0ZSAoKTsKKyAgZW51bSBwYWNrZXRfcmVzdWx0IHJldDsKKworICBpZiAo cmVtb3RlX3Byb3RvY29sX3BhY2tldHNbUEFDS0VUX1FURERDc3JjXS5zdXBw b3J0ID09IFBBQ0tFVF9ESVNBQkxFKQorICAgIHJldHVybjsKKworICBzdHJj cHkgKGJ1ZiwgIlFURERDc3JjOiIpOworICBpZiAoc3RybGVuIChidWYpICsg c3RybGVuIChjb2xsZWN0KSAqIDIgPj0gQlVGX1NJWkUpCisgICAgZXJyb3Ig KF8oIlNvdXJjZSBzdHJpbmcgdG9vIGxvbmcgZm9yIGJ1ZmZlciIpKTsKKyAg YmluMmhleCAoY29sbGVjdCwgYnVmICsgc3RybGVuIChidWYpLCAwKTsKKwor ICBwdXRwa3QgKGJ1Zik7CisgIGdldHBrdCAoJnJzLT5idWYsICZycy0+YnVm X3NpemUsIDApOworICByZXQgPSBwYWNrZXRfb2sgKHJzLT5idWYsICZyZW1v dGVfcHJvdG9jb2xfcGFja2V0c1tQQUNLRVRfUVRERENzcmNdKTsKKyAgaWYg KHJldCA9PSBQQUNLRVRfVU5LTk9XTikKKyAgICB3YXJuaW5nIChfKCJcCitU YXJnZXQgZG9lcyBub3Qgc3VwcG9ydCB0cmFjZXBvaW50IGRlZmF1bHQgY29s bGVjdCBzb3VyY2UgZG93bmxvYWQuIikpOworICBlbHNlIGlmIChyZXQgPT0g UEFDS0VUX0VSUk9SKQorICAgIHdhcm5pbmcgKF8oIlJlbW90ZSBmYWlsdXJl IHJlcGx5OiAlcyIpLCBycy0+YnVmKTsKK30KKwogc3RhdGljIGludAogcmVt b3RlX2Nhbl9kb3dubG9hZF90cmFjZXBvaW50ICh2b2lkKQogewpAQCAtMTE0 MjIsNiArMTE0NTgsOCBAQCBTcGVjaWZ5IHRoZSBzZXJpYWwgZGV2aWNlIGl0 IGlzIGNvbm5lY3RlCiAgIHJlbW90ZV9vcHMudG9fY2FuX3J1bl9icmVha3Bv aW50X2NvbW1hbmRzID0gcmVtb3RlX2Nhbl9ydW5fYnJlYWtwb2ludF9jb21t YW5kczsKICAgcmVtb3RlX29wcy50b190cmFjZV9pbml0ID0gcmVtb3RlX3Ry YWNlX2luaXQ7CiAgIHJlbW90ZV9vcHMudG9fZG93bmxvYWRfdHJhY2Vwb2lu dCA9IHJlbW90ZV9kb3dubG9hZF90cmFjZXBvaW50OworICByZW1vdGVfb3Bz LnRvX2Rvd25sb2FkX3RyYWNlcG9pbnRfZGVmYXVsdF9jb2xsZWN0CisgICAg PSByZW1vdGVfZG93bmxvYWRfdHJhY2Vwb2ludF9kZWZhdWx0X2NvbGxlY3Q7 CiAgIHJlbW90ZV9vcHMudG9fY2FuX2Rvd25sb2FkX3RyYWNlcG9pbnQgPSBy ZW1vdGVfY2FuX2Rvd25sb2FkX3RyYWNlcG9pbnQ7CiAgIHJlbW90ZV9vcHMu dG9fZG93bmxvYWRfdHJhY2Vfc3RhdGVfdmFyaWFibGUKICAgICA9IHJlbW90 ZV9kb3dubG9hZF90cmFjZV9zdGF0ZV92YXJpYWJsZTsKQEAgLTExNjQ0LDYg KzExNjgyLDM2IEBAIHJlbW90ZV91cGxvYWRfdHJhY2Vfc3RhdGVfdmFyaWFi bGVzIChzdHIKICAgcmV0dXJuIDA7CiB9CiAKKy8qIFJlcXVlc3QgdGFyZ2V0 IHVwbG9hZCBkZWZhdWx0IGNvbGxlY3QsIGFsbG9jIGJ1ZiBmb3IgaXQgYW5k IHB1dCBpdAorICAgdG8gQ09MTEVDVFAuICovCisKK3N0YXRpYyB2b2lkCity ZW1vdGVfdXBsb2FkX3RyYWNlX2RlZmF1bHRfY29sbGVjdCAoY2hhciAqKmNv bGxlY3RwKQoreworICBzdHJ1Y3QgcmVtb3RlX3N0YXRlICpycyA9IGdldF9y ZW1vdGVfc3RhdGUgKCk7CisgIGludCBjb2xsZWN0X3NpemU7CisKKyAgaWYg KHJlbW90ZV9wcm90b2NvbF9wYWNrZXRzW1BBQ0tFVF9xVERDXS5zdXBwb3J0 ID09IFBBQ0tFVF9ESVNBQkxFKQorICAgIHJldHVybjsKKworICBwdXRwa3Qg KCJxVERDIik7CisgIHJlbW90ZV9nZXRfbm9pc3lfcmVwbHkgKCZycy0+YnVm LCAmcnMtPmJ1Zl9zaXplKTsKKyAgaWYgKHN0cm5jbXAgKHJzLT5idWYsICJE QyIsIDIpKQorICAgIHsKKyAgICAgIHJlbW90ZV9wcm90b2NvbF9wYWNrZXRz W1BBQ0tFVF9xVERDXS5zdXBwb3J0ID0gUEFDS0VUX0RJU0FCTEU7CisgICAg ICAqY29sbGVjdHAgPSBOVUxMOworICAgICAgd2FybmluZyAoXygiXAorVGFy Z2V0IGRvZXMgbm90IHN1cHBvcnQgdHJhY2Vwb2ludCBkZWZhdWx0IGNvbGxl Y3QgdXBsb2FkLiIpKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgcmVt b3RlX3Byb3RvY29sX3BhY2tldHNbUEFDS0VUX3FURENdLnN1cHBvcnQgPSBQ QUNLRVRfRU5BQkxFOworICBjb2xsZWN0X3NpemUgPSAoc3RybGVuIChycy0+ YnVmKSAtIDIpIC8gMjsKKyAgKmNvbGxlY3RwID0geG1hbGxvYyAoY29sbGVj dF9zaXplICsgMSk7CisgIGhleDJiaW4gKHJzLT5idWYgKyAyLCAqY29sbGVj dHAsIGNvbGxlY3Rfc2l6ZSk7CisgICgqY29sbGVjdHApW2NvbGxlY3Rfc2l6 ZV0gPSAnXDAnOworfQorCiB2b2lkCiBfaW5pdGlhbGl6ZV9yZW1vdGUgKHZv aWQpCiB7CkBAIC0xMjAwMCw2ICsxMjA2OCwxMiBAQCBTaG93IHRoZSBtYXhp bXVtIHNpemUgb2YgdGhlIGFkZHJlc3MgKGluCiAgIGFkZF9wYWNrZXRfY29u ZmlnX2NtZCAoJnJlbW90ZV9wcm90b2NvbF9wYWNrZXRzW1BBQ0tFVF9xWGZl cl9idHJhY2VdLAogICAgICAgICJxWGZlcjpidHJhY2UiLCAicmVhZC1idHJh Y2UiLCAwKTsKIAorICBhZGRfcGFja2V0X2NvbmZpZ19jbWQgKCZyZW1vdGVf cHJvdG9jb2xfcGFja2V0c1tQQUNLRVRfUVRERENzcmNdLAorCQkJICJRVERE Q3NyYyIsICJzZXQtZGVmYXVsdC1jb2xsZWN0IiwgMSk7CisKKyAgYWRkX3Bh Y2tldF9jb25maWdfY21kICgmcmVtb3RlX3Byb3RvY29sX3BhY2tldHNbUEFD S0VUX3FURENdLAorCQkJICJxVERDIiwgImdldC1kZWZhdWx0LWNvbGxlY3Qi LCAxKTsKKwogICAvKiBLZWVwIHRoZSBvbGQgYGBzZXQgcmVtb3RlIFotcGFj a2V0IC4uLicnIHdvcmtpbmcuICBFYWNoIGluZGl2aWR1YWwKICAgICAgWiBz dWItcGFja2V0IGhhcyBpdHMgb3duIHNldCBhbmQgc2hvdyBjb21tYW5kcywg YnV0IHVzZXJzIG1heQogICAgICBoYXZlIHNldHMgdG8gdGhpcyB2YXJpYWJs ZSBpbiB0aGVpciAuZ2RiaW5pdCBmaWxlcyAob3IgaW4gdGhlaXIKLS0tIGEv dGFyZ2V0LmMKKysrIGIvdGFyZ2V0LmMKQEAgLTcwNiw2ICs3MDYsNyBAQCB1 cGRhdGVfY3VycmVudF90YXJnZXQgKHZvaWQpCiAgICAgICBJTkhFUklUICh0 b19zdXBwb3J0c19zdHJpbmdfdHJhY2luZywgdCk7CiAgICAgICBJTkhFUklU ICh0b190cmFjZV9pbml0LCB0KTsKICAgICAgIElOSEVSSVQgKHRvX2Rvd25s b2FkX3RyYWNlcG9pbnQsIHQpOworICAgICAgSU5IRVJJVCAodG9fZG93bmxv YWRfdHJhY2Vwb2ludF9kZWZhdWx0X2NvbGxlY3QsIHQpOwogICAgICAgSU5I RVJJVCAodG9fY2FuX2Rvd25sb2FkX3RyYWNlcG9pbnQsIHQpOwogICAgICAg SU5IRVJJVCAodG9fZG93bmxvYWRfdHJhY2Vfc3RhdGVfdmFyaWFibGUsIHQp OwogICAgICAgSU5IRVJJVCAodG9fZW5hYmxlX3RyYWNlcG9pbnQsIHQpOwpA QCAtODkwLDYgKzg5MSw5IEBAIHVwZGF0ZV9jdXJyZW50X3RhcmdldCAodm9p ZCkKICAgZGVfZmF1bHQgKHRvX2Rvd25sb2FkX3RyYWNlcG9pbnQsCiAJICAg ICh2b2lkICgqKSAoc3RydWN0IGJwX2xvY2F0aW9uICopKQogCSAgICB0Y29t cGxhaW4pOworICBkZV9mYXVsdCAodG9fZG93bmxvYWRfdHJhY2Vwb2ludF9k ZWZhdWx0X2NvbGxlY3QsCisJICAgICh2b2lkICgqKSAoY2hhciAqKSkKKwkg ICAgdGNvbXBsYWluKTsKICAgZGVfZmF1bHQgKHRvX2Nhbl9kb3dubG9hZF90 cmFjZXBvaW50LAogCSAgICAoaW50ICgqKSAodm9pZCkpCiAJICAgIHJldHVy bl96ZXJvKTsKLS0tIGEvdGFyZ2V0LmgKKysrIGIvdGFyZ2V0LmgKQEAgLTc0 OCw2ICs3NDgsMTAgQEAgc3RydWN0IHRhcmdldF9vcHMKICAgICAvKiBTZW5k IGZ1bGwgZGV0YWlscyBvZiBhIHRyYWNlcG9pbnQgbG9jYXRpb24gdG8gdGhl IHRhcmdldC4gICovCiAgICAgdm9pZCAoKnRvX2Rvd25sb2FkX3RyYWNlcG9p bnQpIChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvY2F0aW9uKTsKIAorICAgIC8q IFNlbmQgZnVsbCBkZXRhaWxzIG9mIHRoZSBsaXN0IG9mIGV4cHJlc3Npb25z IHRvIGNvbGxlY3QgYnkgZGVmYXVsdAorICAgICAgIHRvIHRoZSB0YXJnZXQu ICAqLworICAgIHZvaWQgKCp0b19kb3dubG9hZF90cmFjZXBvaW50X2RlZmF1 bHRfY29sbGVjdCkgKGNoYXIgKmNvbGxlY3QpOworCiAgICAgLyogSXMgdGhl IHRhcmdldCBhYmxlIHRvIGRvd25sb2FkIHRyYWNlcG9pbnQgbG9jYXRpb25z IGluIGN1cnJlbnQKICAgICAgICBzdGF0ZT8gICovCiAgICAgaW50ICgqdG9f Y2FuX2Rvd25sb2FkX3RyYWNlcG9pbnQpICh2b2lkKTsKQEAgLTE3MjUsNiAr MTcyOSw5IEBAIGV4dGVybiBjaGFyICp0YXJnZXRfZmlsZWlvX3JlYWRfc3Ry YWxsb2MKICNkZWZpbmUgdGFyZ2V0X2Rvd25sb2FkX3RyYWNlcG9pbnQodCkg XAogICAoKmN1cnJlbnRfdGFyZ2V0LnRvX2Rvd25sb2FkX3RyYWNlcG9pbnQp ICh0KQogCisjZGVmaW5lIHRhcmdldF9kb3dubG9hZF90cmFjZXBvaW50X2Rl ZmF1bHRfY29sbGVjdChjb2xsZWN0KSBcCisgICgqY3VycmVudF90YXJnZXQu dG9fZG93bmxvYWRfdHJhY2Vwb2ludF9kZWZhdWx0X2NvbGxlY3QpIChjb2xs ZWN0KQorCiAjZGVmaW5lIHRhcmdldF9jYW5fZG93bmxvYWRfdHJhY2Vwb2lu dCgpIFwKICAgKCpjdXJyZW50X3RhcmdldC50b19jYW5fZG93bmxvYWRfdHJh Y2Vwb2ludCkgKCkKIAotLS0gYS90cmFjZXBvaW50LmMKKysrIGIvdHJhY2Vw b2ludC5jCkBAIC0xNzk2LDYgKzE3OTYsOCBAQCBzdGFydF90cmFjaW5nIChj aGFyICpub3RlcykKIAogICAgICAgdC0+bnVtYmVyX29uX3RhcmdldCA9IDA7 CiAKKyAgICAgIHRhcmdldF9kb3dubG9hZF90cmFjZXBvaW50X2RlZmF1bHRf Y29sbGVjdCAoZGVmYXVsdF9jb2xsZWN0KTsKKwogICAgICAgZm9yIChsb2Mg PSBiLT5sb2M7IGxvYzsgbG9jID0gbG9jLT5uZXh0KQogCXsKIAkgIC8qIFNp bmNlIHRyYWNlcG9pbnQgbG9jYXRpb25zIGFyZSBuZXZlciBkdXBsaWNhdGVk LCBgaW5zZXJ0ZWQnCkBAIC01NjYwLDYgKzU2NjIsMTggQEAgdHJhY2VmcmFt ZV9hdmFpbGFibGVfbWVtb3J5IChWRUMobWVtX3JhbgogICByZXR1cm4gMDsK IH0KIAorLyogTm90IG92ZXJ3cml0ZSBkZWZhdWx0IGNvbGxlY3QgSWYgQ09M TEVDVCBpcyBOVUxMIG9yIGl0cyBzaXplIGlzIDAuICAqLworCit2b2lkCit0 cmFjZV9zZXRfZGVmYXVsdF9jb2xsZWN0IChjaGFyICpjb2xsZWN0KQorewor ICBpZiAoY29sbGVjdCAhPSBOVUxMKQorICAgIHsKKyAgICAgIHhmcmVlIChk ZWZhdWx0X2NvbGxlY3QpOworICAgICAgZGVmYXVsdF9jb2xsZWN0ID0gY29s bGVjdDsKKyAgICB9Cit9CisKIC8qIEltcGxlbWVudGF0aW9uIG9mIGBzZGF0 YScgdmFyaWFibGUuICAqLwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVy bmFsdmFyX2Z1bmNzIHNkYXRhX2Z1bmNzID0KLS0tIGEvdHJhY2Vwb2ludC5o CisrKyBiL3RyYWNlcG9pbnQuaApAQCAtNDEyLDQgKzQxMiw2IEBAIGV4dGVy biBzdHJ1Y3QgdHJhY2VmcmFtZV9pbmZvICpwYXJzZV90cmEKIGV4dGVybiBp bnQgdHJhY2VmcmFtZV9hdmFpbGFibGVfbWVtb3J5IChWRUMobWVtX3Jhbmdl X3MpICoqcmVzdWx0LAogCQkJCQlDT1JFX0FERFIgbWVtYWRkciwgVUxPTkdF U1QgbGVuKTsKIAorZXh0ZXJuIHZvaWQgdHJhY2Vfc2V0X2RlZmF1bHRfY29s bGVjdCAoY2hhciAqY29sbGVjdCk7CisKICNlbmRpZgkvKiBUUkFDRVBPSU5U X0ggKi8K --089e013cc0222e5f4304da7701ef--