From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id k2XgOLTXmmiRQgEAWB0awg (envelope-from ) for ; Tue, 12 Aug 2025 01:57:08 -0400 Authentication-Results: simark.ca; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=sankhya-com.20230601.gappssmtp.com header.i=@sankhya-com.20230601.gappssmtp.com header.a=rsa-sha256 header.s=20230601 header.b=pVhmOQXL; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id DA4AB1E0B3; Tue, 12 Aug 2025 01:57:08 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_INVALID,DKIM_SIGNED,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 363BE1E093 for ; Tue, 12 Aug 2025 01:57:07 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 80F803858C31 for ; Tue, 12 Aug 2025 05:57:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 80F803858C31 Authentication-Results: sourceware.org; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=sankhya-com.20230601.gappssmtp.com header.i=@sankhya-com.20230601.gappssmtp.com header.a=rsa-sha256 header.s=20230601 header.b=pVhmOQXL Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com [IPv6:2a00:1450:4864:20::62f]) by sourceware.org (Postfix) with ESMTPS id 924843858C83 for ; Tue, 12 Aug 2025 05:56:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 924843858C83 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=sankhya.com Authentication-Results: sourceware.org; spf=none smtp.mailfrom=sankhya.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 924843858C83 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::62f ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1754978190; cv=none; b=JWpaJbI1xX7o2eevDXbANH4u6rEz4u41x/me+Fjjg9JJma9VGi+coosSlXQf4gCJPWG08pADksRIBjvs+/ZhDy//FqtEurKdldqV/7lLJoC5IDO2Foh+VtTGOssf4L7gXXHoQjjJU+CSgh8YaYJg+zhHOlURYkqy0kW06XAmEfc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1754978190; c=relaxed/simple; bh=tHoptfXD4aXywqJa+9qmXgrcRPMaKFRDPUSdv1vCxDg=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=DOt0h0ZEPWDmOao6+vslFGg/4MJyNkhf2vlGHKwzIUH8tb5H0e9jI0fXHA5vedvDPKwgO2hDQ1Y4jbE6l3UJxKreREhy3H4BEntbiSPI1VmsvLnxecfooFjqOLhGGNwQTlDZMDP/SDjCnsdsPY/YQGLtUOVnQso0d6txvBh+C/I= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 924843858C83 Received: by mail-ej1-x62f.google.com with SMTP id a640c23a62f3a-af95525bac4so910048266b.0 for ; Mon, 11 Aug 2025 22:56:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sankhya-com.20230601.gappssmtp.com; s=20230601; t=1754978188; x=1755582988; darn=sourceware.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=SR0QER+lnzTXVwqB6otMx+9nFW6zpHH9/URT7uSScXg=; b=pVhmOQXLjuuAjrhKIYoob7weZO8gdkKVHWGg/s2OjcCybWSg6I6gra2auHezrqXaIC eMz7Oym3XAumsZNPq+od9XQEZAjIgsYnPmiQfj90Qe7IdrP7o7QRcYRnV6+mswhjNGD+ uXOCYeBd0V+a1wdF5pHwgvFjbMUiqKjDkSY1dPuWRtydVYLZglBwnrqY9LrjsPPF6uHG xaWtzQ07qYeGKYw3zThd+cbLNqDnq8Dbef3hKkUku9zy1VRAre6Tq4Pe1AqrHg+igXrY x18felCzxaUK/rQ3SUT8mJZ90Zott2JsUnc/qCG3NlQuM6EmE+ICLOFHojDNk1lfKsWV 3ypg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754978188; x=1755582988; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=SR0QER+lnzTXVwqB6otMx+9nFW6zpHH9/URT7uSScXg=; b=awIAlT/6SyML7hIrn2WJ/xBupcTe65LGGRK2gyAXWl5HxcWVWc6ZsPvGeFMzlkOm8+ kOq1s5Zf1otQCMFHoYkLGvjVXHk/tbdyeFabHXbF+LyHOWGDFQMAAFUz1xcU5k1xDafP ZstFPb1d4ts2E5CkBWluJARSfOftIKNOPE07eusOhi8gshmzYJvng+XWGUt6AGISOTzU CvXj8JF9j7T8U0wwDJe0mmaj7Uf2b4AZcfGWuS9mKkTmr2cizVnOTcgHDEIed/JEZpiq xsxdnKEYmgyVdS6Oo9aPy5bN0cJ2g2B6y31CoCNaCv40nKY+OLnOv+9iXHQeGQCC8BQd BVIg== X-Gm-Message-State: AOJu0YyvGcZzTezoMI2pygOg63jsDB/mZLd67yRpnSAwPIUOIvUsSEKl xhRJ81eNP79EeSToWQAuo4VUbx5z6VeXeEv12tUIIeWxJJIm/IYWpCA3y2hTZDASSwLoGIVkM0w pFZyZiOqSi3ikFuelBhGvVsP4TA+FYkoEcxZkyTp1qccQf439LB5yFDc= X-Gm-Gg: ASbGnctUpypFQG6Xo+Vd9cMoD1jnBfw93tMUfvV0tamn/nEWkkPKi1qtYZ9F3v9a63j GLs5Toi5VeB/0/u/gVC1RXsywq4pN/66fpfJWASJh4Yer/jDAyTMKavBnGNQuV0mNT8z+CIA6Hb H2JoiooPWM+Dd1Wzbyqd53w87rDNnPZwrS6RjKOwqAosVz8XIpEcrZFVpLFi7Z7UebaInjm0ebi GtnhRbz X-Google-Smtp-Source: AGHT+IFxf3BtDcuOL5I7UxK6B52eiPEziizV5MG5vovh+dfW1nUhZOB/mMFWxle3763bZ79FqDHN/nV6kzfiOj+AG+o= X-Received: by 2002:a17:907:9686:b0:af2:42e8:ad9f with SMTP id a640c23a62f3a-af9c6516b7dmr1329738966b.39.1754978187767; Mon, 11 Aug 2025 22:56:27 -0700 (PDT) MIME-Version: 1.0 From: Gopi Kumar Bulusu Date: Tue, 12 Aug 2025 11:00:41 +0530 X-Gm-Features: Ac12FXyK2RcXi0d7noyIFzgChn_-I_V_7NcJrxvkdNG_LUHHWi3BgUg0s1QwmcI Message-ID: Subject: [PATCH] MicroBlaze: Add microblaze_software_single_step To: gdb-patches@sourceware.org Cc: Michael Eager Content-Type: multipart/mixed; boundary="00000000000078ccfb063c24b3e3" X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org --00000000000078ccfb063c24b3e3 Content-Type: multipart/alternative; boundary="00000000000078ccfa063c24b3e1" --00000000000078ccfa063c24b3e1 Content-Type: text/plain; charset="UTF-8" namaskaaram *This is part of a series of patches being reviewed, modified, tested and upstreamed * *from Xilinx/AMD repository on behalf of AMD/Xilinx under a contract between * *AMD/Xilinx and Sankhya Technologies Private Limited* This patch supports native linux port of gdbserver for MicroBlaze *Files Changed* * gdb/microblaze-tdep.c: Add microblaze_software_single_step, retained a few useful debug statements added for testing the patch. There is one more patch in this series of patches for adding gdbserver support in gdb for microblazeel-linux and this can be considered a preparatory patch. *Build and Test * Built microblazeel-amd-linux-gdb and tested with gdbserver (microblazeel-amd-linux) dhanyavaadaaha gopi --00000000000078ccfa063c24b3e1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
namaskaaram

This is part = of a series of patches being reviewed, modified, tested and upstreamed
=
from Xilinx/AMD repository on behalf of AMD/Xilinx under = a contract between
AMD/Xilinx and=C2=A0 Sankhya Techn= ologies Private Limited

This patch supports native linux port of = gdbserver for MicroBlaze

Files Changed<= /div>

* gdb/microblaze-tdep.c: Add microblaze_software_s= ingle_step, retained
a few useful debug statements added for testing the= patch.

There is one more patch in this series= of patches for adding gdbserver support
in gdb for microblazeel-= linux and this can be considered a preparatory patch.

Build and Test

Built microblaz= eel-amd-linux-gdb and tested with gdbserver (microblazeel-amd-linux)
<= div>
dhanyavaadaaha
gopi

--00000000000078ccfa063c24b3e1-- --00000000000078ccfb063c24b3e3 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-MicroBlaze-Add-microblaze_software_single_step.patch" Content-Disposition: attachment; filename="0001-MicroBlaze-Add-microblaze_software_single_step.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me83mlka0 RnJvbSBmNjQwNzljMWIwOGI2MTI3NmFhYmZhOWMxNTYzZjUwOGY0ZjUzNzNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHb3BpIEt1bWFyIEJ1bHVzdSA8Z29waUBzYW5raHlhLmNvbT4K RGF0ZTogVHVlLCAxMiBBdWcgMjAyNSAwOTo0Mjo0OCArMDUzMApTdWJqZWN0OiBbUEFUQ0hdIE1p Y3JvQmxhemU6IEFkZCBtaWNyb2JsYXplX3NvZnR3YXJlX3NpbmdsZV9zdGVwCgpUaGlzIHBhdGNo IHN1cHBvcnRzIG5hdGl2ZSBsaW51eCBwb3J0IG9mIGdkYnNlcnZlciBmb3IgTWljcm9CbGF6ZQoK KiBnZGIvbWljcm9ibGF6ZS10ZGVwLmM6IEFkZCBtaWNyb2JsYXplX3NvZnR3YXJlX3NpbmdsZV9z dGVwLCByZXRhaW5lZAphIGZldyB1c2VmdWwgZGVidWcgc3RhdGVtZW50cyBhZGRlZCBmb3IgdGVz dGluZyB0aGUgcGF0Y2guCgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBIb2xzZ3JvdmUgPGRhdmlkLmhv bHNncm92ZUBwZXRhbG9naXguY29tPgpTaWduZWQtb2ZmLWJ5OiBOYXRoYW4gUm9zc2kgPG5hdGhh bi5yb3NzaUBwZXRhbG9naXguY29tPgpTaWduZWQtb2ZmLWJ5OiBNYWhlc2ggQm9kYXBhdGkgPG1i b2RhcGF0QHhpbGlueC5jb20+ClNpZ25lZC1vZmYtYnk6IEdvcGkgS3VtYXIgQnVsdXN1IDxnb3Bp QHNhbmtoeWEuY29tPgotLS0KIGdkYi9taWNyb2JsYXplLXRkZXAuYyB8IDEyOCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxMjYgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nZGIvbWljcm9ibGF6ZS10 ZGVwLmMgYi9nZGIvbWljcm9ibGF6ZS10ZGVwLmMKaW5kZXggN2I1ODIyMDg3MWMuLmIwYTg0YjJm ZTBmIDEwMDY0NAotLS0gYS9nZGIvbWljcm9ibGF6ZS10ZGVwLmMKKysrIGIvZ2RiL21pY3JvYmxh emUtdGRlcC5jCkBAIC0zNzMsNiArMzczLDkgQEAgbWljcm9ibGF6ZV91bndpbmRfcGMgKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLCBjb25zdCBmcmFtZV9pbmZvX3B0ciAmbmV4dF9mcmFtZSkKICAg Z2RiX2J5dGUgYnVmWzRdOwogICBDT1JFX0FERFIgcGM7CiAKKyAgbWljcm9ibGF6ZV9kZWJ1ZyAo Im1pY3JvYmxhemVfdW53aW5kX3BjIGNhbGxlZFxuIik7CisKKwogICBmcmFtZV91bndpbmRfcmVn aXN0ZXIgKG5leHRfZnJhbWUsIE1JQ1JPQkxBWkVfUENfUkVHTlVNLCBidWYpOwogICBwYyA9IGV4 dHJhY3RfdHlwZWRfYWRkcmVzcyAoYnVmLCBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGlu X2Z1bmNfcHRyKTsKICAgLyogRm9yIHNlbnRpbmVsIGZyYW1lLCByZXR1cm4gYWRkcmVzcyBpcyBh Y3R1YWwgUEMuICBGb3Igb3RoZXIgZnJhbWVzLApAQCAtMzgwLDYgKzM4Myw5IEBAIG1pY3JvYmxh emVfdW53aW5kX3BjIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgY29uc3QgZnJhbWVfaW5mb19w dHIgJm5leHRfZnJhbWUpCiAgICAgIGdlbmVyYXRlIGNvcnJlY3QgcmV0dXJuIGFkZHJlc3MgaW4g Q0lFLiAgKi8KICAgaWYgKGZyYW1lX3JlbGF0aXZlX2xldmVsIChuZXh0X2ZyYW1lKSA+PSAwKQog ICAgIHBjICs9IDg7CisKKyAgbWljcm9ibGF6ZV9kZWJ1ZyAoIm1pY3JvYmxhemVfdW53aW5kX3Bj IHJldHVybmluZyBwYzogJXggXG4iLCBwYyk7CisKICAgcmV0dXJuIHBjOwogfQogCkBAIC00MjMs OCArNDI5LDEzIEBAIG1pY3JvYmxhemVfZnJhbWVfY2FjaGUgKGNvbnN0IGZyYW1lX2luZm9fcHRy ICZuZXh0X2ZyYW1lLCB2b2lkICoqdGhpc19jYWNoZSkKICAgc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2ggPSBnZXRfZnJhbWVfYXJjaCAobmV4dF9mcmFtZSk7CiAgIGludCBybjsKIAotICBpZiAoKnRo aXNfY2FjaGUpCisgIG1pY3JvYmxhemVfZGVidWcgKCJtaWNyb2JsYXplX2ZyYW1lX2NhY2hlIGNh bGxlZC5cbiIpOworCisgIGlmICgqdGhpc19jYWNoZSkgeworICAgIG1pY3JvYmxhemVfZGVidWcg KCJtaWNyb2JsYXplX2ZyYW1lX2NhY2hlOiByZXR1cm5pbmcgY2FjaGUgaGl0XG4iKTsKICAgICBy ZXR1cm4gKHN0cnVjdCBtaWNyb2JsYXplX2ZyYW1lX2NhY2hlICopICp0aGlzX2NhY2hlOworICB9 CisKIAogICBjYWNoZSA9IG1pY3JvYmxhemVfYWxsb2NfZnJhbWVfY2FjaGUgKCk7CiAgICp0aGlz X2NhY2hlID0gY2FjaGU7CkBAIC00MzksNiArNDUwLDggQEAgbWljcm9ibGF6ZV9mcmFtZV9jYWNo ZSAoY29uc3QgZnJhbWVfaW5mb19wdHIgJm5leHRfZnJhbWUsIHZvaWQgKip0aGlzX2NhY2hlKQog CiAgIGNhY2hlLT5wYyA9IGdldF9mcmFtZV9hZGRyZXNzX2luX2Jsb2NrIChuZXh0X2ZyYW1lKTsK IAorICBtaWNyb2JsYXplX2RlYnVnICgibWljcm9ibGF6ZV9mcmFtZV9jYWNoZSAtIHJldHVybmlu ZyAocGMgPSAleCkuXG4iLCBjYWNoZS0+cGMpOworCiAgIHJldHVybiBjYWNoZTsKIH0KIApAQCAt NTkwLDcgKzYwMywxMTYgQEAgbWljcm9ibGF6ZV9zdGFic19hcmd1bWVudF9oYXNfYWRkciAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB0eXBlICp0eXBlKQogICByZXR1cm4gKHR5cGUt Pmxlbmd0aCAoKSA9PSAxNik7CiB9CiAKLQwKK2xvbmcKK21pY3JvYmxhemVfZ2V0cmVnKHN0cnVj dCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdubykKK3sKKwlsb25nIHJlZ3ZhbCA9IDA7CisK KwlpZiAocmVnbm8gPj0gMCAmJiByZWdubyA8IE1JQ1JPQkxBWkVfTlVNX1JFR1MpCisJICB7CisJ ICAgIHJlZ3ZhbCA9IHJlZ2NhY2hlX3Jhd19nZXRfdW5zaWduZWQocmVnY2FjaGUsIHJlZ25vKTsK KwkgIH0KKworCXJldHVybiByZWd2YWw7Cit9CisKKy8qIFJldHVybiBuZXh0IHBjIHZhbHVlcyA6 IG5leHQgaW4gc2VxdWVuY2UgYW5kL29yIGJyYW5jaC9yZXR1cm4gdGFyZ2V0ICovCitzdGF0aWMg c3RkOjp2ZWN0b3I8Q09SRV9BRERSPgorbWljcm9ibGF6ZV9zb2Z0d2FyZV9zaW5nbGVfc3RlcCAo cmVnY2FjaGUgKnJlZ2NhY2hlKQoreworCisgICAgICBnZGJhcmNoICphcmNoID0gcmVnY2FjaGUt PmFyY2ggKCk7CisKKyAgICAgIENPUkVfQUREUiBwYzsKKyAgICAgIHN0ZDo6dmVjdG9yPENPUkVf QUREUj4gbmV4dF9wY3M7CisgICAgICBsb25nIGluc247CisgICAgICBlbnVtIG1pY3JvYmxhemVf aW5zdHIgbWluc3RyOworICAgICAgZW51bSBtaWNyb2JsYXplX2luc3RyX3R5cGUgaW5zbl90eXBl OworICAgICAgc2hvcnQgZGVsYXlfc2xvdHM7CisgICAgICBpbnQgaW1tOworICAgICAgYm9vbCBp c3Vuc2lnbmVkbnVtOworICAgICAgYm9vbCBpbW1mb3VuZCA9IGZhbHNlOworICAgICAgc3RydWN0 IGFkZHJlc3NfY2FuZGlkYXRlcworICAgICAgeworCUNPUkVfQUREUiBhZGRyZXNzOworCWJvb2wg dmFsaWQ7CisgICAgICB9IGNhbmRpZGF0ZXMgWzJdOworCisgICAgICAvKiBHZXQgaW5zdHJ1Y3Rp b24gKi8KKyAgICAgIHBjID0gcmVnY2FjaGVfcmVhZF9wYyAocmVnY2FjaGUpOworICAgICAgaW5z biA9IG1pY3JvYmxhemVfZmV0Y2hfaW5zdHJ1Y3Rpb24gKHBjKTsKKyAgICAgIG1pbnN0ciA9IGdl dF9pbnNuX21pY3JvYmxhemUgKGluc24sICZpc3Vuc2lnbmVkbnVtLCAmaW5zbl90eXBlLCAmZGVs YXlfc2xvdHMpOworICAgICAgLyogSWYgdGhlIGN1cnJlbnQgaW5zdHJ1Y3Rpb24gaXMgYW4gaW1t LCBsb29rIGF0IHRoZSBpbnN0IGFmdGVyICovCisgICAgICBpZiAoaW5zbl90eXBlID09IGltbWVk aWF0ZV9pbnN0KQorCXsKKwkgIGludCByZCwgcmEsIHJiOworCSAgaW1tZm91bmQgPSB0cnVlOwor CSAgbWluc3RyID0gbWljcm9ibGF6ZV9kZWNvZGVfaW5zbiAoaW5zbiwgJnJkLCAmcmEsICZyYiwg JmltbSk7CisJICBwYyA9IHBjICsgSU5TVF9XT1JEX1NJWkU7CisJICBpbnNuID0gbWljcm9ibGF6 ZV9mZXRjaF9pbnN0cnVjdGlvbiAocGMpOworCSAgbWluc3RyID0gZ2V0X2luc25fbWljcm9ibGF6 ZSAoaW5zbiwgJmlzdW5zaWduZWRudW0sICZpbnNuX3R5cGUsICZkZWxheV9zbG90cyk7CisJfQor CisgICAgICBjYW5kaWRhdGVzWzBdLnZhbGlkID0gKGluc25fdHlwZSAhPSByZXR1cm5faW5zdCk7 CisKKyAgICAgIC8qIENvbXB1dGUgbmV4dCBpbnN0cnVjdGlvbiBhZGRyZXNzIC0gc2tpcCBkZWxh eSBzbG90cyBpZiBhbnkgKi8KKyAgICAgIGNhbmRpZGF0ZXNbMF0uYWRkcmVzcyA9IHBjICsgSU5T VF9XT1JEX1NJWkUgKworCQkJKGRlbGF5X3Nsb3RzICogSU5TVF9XT1JEX1NJWkUpOworCisgICAg ICBtaWNyb2JsYXplX2RlYnVnICgic2luZ2xlLXN0ZXAgaW5zbl90eXBlPSV4IHBjPSVseCBpbnNu PSVseFxuIiwKKwkJCWluc25fdHlwZSwgcGMsIGluc24pOworCisgICAgICAvKiBDb21wdXRlIHRh cmdldCBpbnN0cnVjdGlvbiBhZGRyZXNzIGZvciBicmFuY2ggb3IgcmV0dXJuIGluc3RydWN0aW9u ICovCisgICAgICBjYW5kaWRhdGVzWzFdLnZhbGlkID0gZmFsc2U7CisgICAgICBpZiAoaW5zbl90 eXBlID09IGJyYW5jaF9pbnN0IHx8IGluc25fdHlwZSA9PSByZXR1cm5faW5zdCkKKwl7CisJICBp bnQgbGltbTsKKwkgIGludCBscmQsIGxyYSwgbHJiOworCSAgbG9uZyByYSwgcmI7CisJICBiZmRf Ym9vbGVhbiB0YXJnZXR2YWxpZDsKKwkgIGJmZF9ib29sZWFuIHVuY29uZGl0aW9uYWxicmFuY2g7 CisKKwkgIG1pY3JvYmxhemVfZGVjb2RlX2luc24oaW5zbiwgJmxyZCwgJmxyYSwgJmxyYiwgJmxp bW0pOworCisJICByYSA9IG1pY3JvYmxhemVfZ2V0cmVnIChyZWdjYWNoZSwgbHJhKTsKKwkgIHJi ID0gbWljcm9ibGF6ZV9nZXRyZWcgKHJlZ2NhY2hlLCBscmIpOworCisJICBjYW5kaWRhdGVzWzFd LmFkZHJlc3MgPSBtaWNyb2JsYXplX2dldF90YXJnZXRfYWRkcmVzcyAoCisJCQkJCWluc24sIGlt bWZvdW5kLCBpbW0sIHBjLCByYSwgcmIsCisJCQkJCSZ0YXJnZXR2YWxpZCwgJnVuY29uZGl0aW9u YWxicmFuY2gpOworCisJICBtaWNyb2JsYXplX2RlYnVnICgKKwkgICAgInNpbmdsZS1zdGVwIHVu Y29uZGJyPSVkIHRhcmdldHZhbGlkPSVkIHRhcmdldD0lbHhcbiIsCisJICAgIHVuY29uZGl0aW9u YWxicmFuY2gsIHRhcmdldHZhbGlkLCBjYW5kaWRhdGVzWzFdLmFkZHJlc3MpOworCisJICAvKiBD YW4gcmVhY2ggbmV4dCBhZGRyZXNzID8gKi8KKwkgIGNhbmRpZGF0ZXNbMF0udmFsaWQgPQorCSAg ICBjYW5kaWRhdGVzWzBdLnZhbGlkICYmICh1bmNvbmRpdGlvbmFsYnJhbmNoID09IEZBTFNFKTsK KworCSAgLyogQ2FuIHJlYWNoIGEgZGlzdGluY3QgKG5vdCBoZXJlKSB0YXJnZXQgYWRkcmVzcyA/ ICovCisJICBjYW5kaWRhdGVzWzFdLnZhbGlkID0gRkFMU0U7CisJICBpZiAodGFyZ2V0dmFsaWQg JiYKKwkJICBjYW5kaWRhdGVzWzFdLmFkZHJlc3MgIT0gcGMgJiYKKwkJICAoY2FuZGlkYXRlc1sw XS52YWxpZCA9PSBGQUxTRSB8fAorCQkgICAgKGNhbmRpZGF0ZXNbMF0uYWRkcmVzcyAhPSBjYW5k aWRhdGVzWzFdLmFkZHJlc3MpKSkKKwkgICAgeworCSAgICAgIGNhbmRpZGF0ZXNbMV0udmFsaWQg PSBUUlVFOworCSAgICB9CisJIH0gLyogaWYgKGJyYW5jaCBvciByZXR1cm4gaW5zdHJ1Y3Rpb24p ICovCisKKwkgLyogQ3JlYXRlIG5leHRfcGNzIHZlY3RvciAgKi8KKwkgZm9yIChpbnQgY2kgPSAw OyBjaSA8IDI7IGNpKyspCisJICAgeworCSAgICAgaWYgKGNhbmRpZGF0ZXNbY2ldLnZhbGlkKQor CSAgICAgICB7CisJCW5leHRfcGNzLnB1c2hfYmFjayAoY2FuZGlkYXRlc1tjaV0uYWRkcmVzcyk7 CisJCW1pY3JvYmxhemVfZGVidWcgKCJwdXNoX2JhY2sgKCVseClcbiIsIGNhbmRpZGF0ZXNbY2ld LmFkZHJlc3MpOworCSAgICAgICB9CisJICAgfQorCisgICAgICByZXR1cm4gbmV4dF9wY3M7Cit9 CisKIHN0YXRpYyBpbnQgZHdhcmYyX3RvX3JlZ19tYXBbNzhdID0KIHsgMCAgLyogcjAgICovLCAg IDEgIC8qIHIxICAqLywgICAyICAvKiByMiAgKi8sICAgMyAgLyogcjMgICovLCAgLyogIDAtIDMg Ki8KICAgNCAgLyogcjQgICovLCAgIDUgIC8qIHI1ICAqLywgICA2ICAvKiByNiAgKi8sICAgNyAg LyogcjcgICovLCAgLyogIDQtIDcgKi8KQEAgLTcxNSw2ICs4MzcsOCBAQCBtaWNyb2JsYXplX2dk YmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpbmZvLCBzdHJ1Y3QgZ2RiYXJjaF9saXN0 ICphcmNoZXMpCiAgIHNldF9nZGJhcmNoX3N3X2JyZWFrcG9pbnRfZnJvbV9raW5kIChnZGJhcmNo LAogCQkJCSAgICAgICBtaWNyb2JsYXplX2JyZWFrcG9pbnQ6OmJwX2Zyb21fa2luZCk7CiAKKyAg c2V0X2dkYmFyY2hfc29mdHdhcmVfc2luZ2xlX3N0ZXAgKGdkYmFyY2gsIG1pY3JvYmxhemVfc29m dHdhcmVfc2luZ2xlX3N0ZXApOworCiAgIHNldF9nZGJhcmNoX2ZyYW1lX2FyZ3Nfc2tpcCAoZ2Ri YXJjaCwgOCk7CiAKICAgc2V0X2dkYmFyY2hfdW53aW5kX3BjIChnZGJhcmNoLCBtaWNyb2JsYXpl X3Vud2luZF9wYyk7Ci0tIAoyLjQ3LjEKCg== --00000000000078ccfb063c24b3e3--