From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20549 invoked by alias); 11 Jul 2014 12:34:34 -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 20503 invoked by uid 89); 11 Jul 2014 12:34:29 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-HELO: na01-bn1-obe.outbound.protection.outlook.com Received: from mail-bn1blp0185.outbound.protection.outlook.com (HELO na01-bn1-obe.outbound.protection.outlook.com) (207.46.163.185) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Fri, 11 Jul 2014 12:34:22 +0000 Received: from BN1AFFO11FD012.protection.gbl (10.58.52.33) by BN1AFFO11HUB038.protection.gbl (10.58.52.149) with Microsoft SMTP Server (TLS) id 15.0.980.11; Fri, 11 Jul 2014 12:34:19 +0000 Received: from xsj-pvapsmtpgw01 (149.199.60.83) by BN1AFFO11FD012.mail.protection.outlook.com (10.58.52.72) with Microsoft SMTP Server (TLS) id 15.0.980.11 via Frontend Transport; Fri, 11 Jul 2014 12:34:18 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-smtp1) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1X5a1Q-0000EC-7E; Fri, 11 Jul 2014 05:33:52 -0700 From: Ajit Kumar Agarwal To: Joel Brobecker CC: "gdb-patches@sourceware.org" , Michael Eager , Pedro Alves , Vinod Kathail , Vidhumouli Hunsigida , "Nagaraju Mekala" Subject: RE: [Patch, microblaze]: Add support of microblaze software single stepping Date: Fri, 11 Jul 2014 12:53:00 -0000 References: <20140707145634.GF6038@adacore.com> In-Reply-To: <20140707145634.GF6038@adacore.com> Content-Type: multipart/mixed; boundary="_002_37378DC5BCD0EE48BA4B082E0B55DFAA40B91730XAPPVEXMBX01xln_" MIME-Version: 1.0 X-RCIS-Action: ALLOW Message-ID: <35bccb81-cae6-4581-b5fd-16dea7171d28@BN1AFFO11FD012.protection.gbl> X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:149.199.60.83;CTRY:US;IPV:NLI;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(6009001)(438002)(377454003)(377424004)(189002)(199002)(51704005)(13464003)(80022001)(19580405001)(20776003)(19580395003)(4396001)(6806004)(44976005)(83072002)(85852003)(15975445006)(2656002)(87936001)(71186001)(21056001)(46102001)(83322001)(81342001)(64706001)(76482001)(70736001)(81542001)(99396002)(568964001)(54356999)(53416004)(110136001)(33646001)(79102001)(95666004)(77982001)(1496007)(99936001)(106466001)(74316001)(77096002)(74662001)(86362001)(512954002)(92566001)(85306003)(31696002)(74502001)(104016003)(76176999)(84326002)(31966008)(92726001)(50986999)(106116001)(107046002)(107986001);DIR:OUT;SFP:;SCL:1;SRVR:BN1AFFO11HUB038;H:xsj-pvapsmtpgw01;FPR:;MLV:sfv;PTR:unknown-60-83.xilinx.com;MX:1;A:1;LANG:en; X-OriginatorOrg: xilinx.onmicrosoft.com X-Microsoft-Antispam: BCL:0;PCL:0;RULEID: X-Forefront-PRVS: 02698DF457 Received-SPF: Pass (: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=ajit.kumar.agarwal@xilinx.com; X-SW-Source: 2014-07/txt/msg00262.txt.bz2 --_002_37378DC5BCD0EE48BA4B082E0B55DFAA40B91730XAPPVEXMBX01xln_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 6692 Based on the feedback review comments are incorporated.=20 [Patch, microblaze]: Add support of microblaze software single stepping. =20=20=20=20 This patch adds the support of microblaze software single stepping. It handles the cases of branch and return with delay slot and imm instruct= ion in microblaze. =20=20=20=20 ChangeLog: 2014-07-11 Ajit Agarwal =20=20=20=20 * microblaze-tdep.c (microblaze_software_single_step): New. (microblaze_gdbarch_init): Use of set_gdbarch_software_single_step. =20=20=20=20 Signed-off-by:Ajit Agarwal ajitkum@xilinx.com Thanks & Regards Ajit -----Original Message----- From: Joel Brobecker [mailto:brobecker@adacore.com]=20 Sent: Monday, July 07, 2014 8:27 PM To: Ajit Kumar Agarwal Cc: gdb-patches@sourceware.org; Michael Eager; Pedro Alves; Vinod Kathail; = Vidhumouli Hunsigida; Nagaraju Mekala Subject: Re: [Patch, microblaze]: Add support of microblaze software single= stepping > PING! A quick look at the patch shows that the code does not conform to the GNU C= oding style: - '{' brace at start of function should be on next line, - Sentences in comments should start with a capital letter and end with a period - etc. Also, GDB Coding Style, which is a superset of the GCS, require that every = single new function have proper documentation a the start of them. You can refer to: https://sourceware.org/gdb/wiki/Internals%20Coding-Standards Last but not least, it looks like some lines got joined together, putting m= ultiple statements on the same line. >=20 > -----Original Message----- > From: Ajit Kumar Agarwal > Sent: Friday, June 20, 2014 11:40 AM > To: 'gdb-patches@sourceware.org' > Cc: 'Michael Eager'; 'Pedro Alves'; Vinod Kathail; Vidhumouli=20 > Hunsigida; Nagaraju Mekala > Subject: RE: [Patch, microblaze]: Add support of microblaze software=20 > single stepping >=20 > Please find the patch that supports the microblaze software single steppi= ng. This patch handles the cases of branch and return with delay slot > and the imm instruction in microblaze. Could you please review and let me= know if its okay.=20=20=20 >=20 > [Patch, microblaze]: Add support of microblaze software single=20 > stepping >=20=20=20=20=20 > This patch adds the support of microblaze software single stepping. It > handles the cases of branch and return with delay slot and imm instru= ction > in microblaze. >=20=20=20=20=20 > ChangeLog: > 2014-06-19 Ajit Agarwal >=20=20=20=20=20 > * microblaze-tdep.c (microblaze_software_single_step): New. > (microblaze_gdbarch_init): Use of set_gdbarch_software_single_ste= p. >=20=20=20=20=20 > Signed-off-by:Ajit Agarwal ajitkum@xilinx.com >=20 > --- > gdb/microblaze-tdep.c | 79 +++++++++++++++++++++++++++++++++++++++++++= ++++++ > 1 files changed, 79 insertions(+), 0 deletions(-) >=20 > diff --git a/gdb/microblaze-tdep.c b/gdb/microblaze-tdep.c index=20 > 14c1b52..3de2f70 100644 > --- a/gdb/microblaze-tdep.c > +++ b/gdb/microblaze-tdep.c > @@ -628,6 +628,83 @@ microblaze_stabs_argument_has_addr (struct gdbarch *= gdbarch, struct type *type) > return (TYPE_LENGTH (type) =3D=3D 16); > } >=20=20 > +static int > +microblaze_software_single_step (struct frame_info *frame) { > + struct gdbarch *arch =3D get_frame_arch (frame); > + struct address_space *aspace =3D get_frame_address_space (frame); > + struct gdbarch_tdep *tdep =3D gdbarch_tdep (arch); > + enum bfd_endian byte_order =3D gdbarch_byte_order (arch); > + int ret =3D 0; > + int ii; > + CORE_ADDR pc; > + long insn; > + enum microblaze_instr minstr; > + bfd_boolean isunsignednum; > + enum microblaze_instr_type insn_type; > + short delay_slots; > + int imm; > + bfd_boolean immfound =3D FALSE; > + CORE_ADDR breaks[2] =3D {-1,-1}; > + CORE_ADDR address; > + int targetvalid; > + > + /* Set a breakpoint at the next instruction */ > + /* If the current instruction is an imm, set it at the inst after=20=20 > + */ > + /* If the instruction has a delay slot, skip the delay slot */ pc=20 > + =3D get_frame_pc (frame); insn =3D microblaze_fetch_instruction (pc);= =20 > + minstr =3D get_insn_microblaze (insn, &isunsignednum, &insn_type,=20 > + &delay_slots); if (insn_type =3D=3D immediate_inst) > + {=20 > + int rd, ra, rb;=20 > + immfound =3D TRUE;=20 > + minstr =3D microblaze_decode_insn (insn, &rd, &ra, &rb, &imm);=20 > + pc =3D pc + INST_WORD_SIZE;=20 > + insn =3D microblaze_fetch_instruction (pc);=20 > + minstr =3D get_insn_microblaze (insn, &isunsignednum, &insn_type, = &delay_slots);=20 > + }=20=20=20 > + if (insn_type !=3D return_inst)=20 > + breaks[0] =3D pc + delay_slots * INST_WORD_SIZE + INST_WORD_SIZE; > +=20=20=20=20 > + /* Now check for branch or return instructions */ if (insn_type=20 > + =3D=3D branch_inst || insn_type =3D=3D return_inst) > + {=20 > + int limm;=20 > + int lrd, lra, lrb;=20 > + int ra, rb;=20 > + bfd_boolean targetvalid;=20 > + bfd_boolean unconditionalbranch;=20 > + microblaze_decode_insn (insn, &lrd, &lra, &lrb, &limm);=20 > + if (lra >=3D 0 && lra < MICROBLAZE_NUM_REGS)=20 > + ra =3D get_frame_register_unsigned (frame, lra);=20 > + else=20 > + ra =3D 0;=20 > + if (lrb >=3D 0 && lrb < MICROBLAZE_NUM_REGS)=20 > + rb =3D get_frame_register_unsigned (frame, lrb);=20 > + else=20 > + rb =3D 0;=20 > + address =3D microblaze_get_target_address (insn, immfound, imm,=20 > + pc, ra, rb, &targetvalid, &unconditionalbranch); > +=20=20=20=20=20=20=20=20 > + if (!unconditionalbranch)=20 > + breaks[1] =3D address; > + } > +=20=20=20=20 > + /* Insert the breakpoints */ > + if (breaks[0] !=3D -1)=20 > + { > + insert_single_step_breakpoint (arch, aspace, breaks[0]);=20 > + ret =3D 1;=20 > + } > + if (breaks[1] !=3D -1)=20 > + {=20=20=20 > + insert_single_step_breakpoint (arch, aspace, breaks[1]);=20=20=20= =20=20 > + ret =3D 1;=20=20 > + } > + > + return ret; > +} > +=20 > static void > microblaze_write_pc (struct regcache *regcache, CORE_ADDR pc) { @@=20 > -708,6 +785,8 @@ microblaze_gdbarch_init (struct gdbarch_info info,=20 > struct gdbarch_list *arches) >=20=20 > set_gdbarch_breakpoint_from_pc (gdbarch,=20 > microblaze_breakpoint_from_pc); >=20=20 > + set_gdbarch_software_single_step (gdbarch,=20 > + microblaze_software_single_step); > + > set_gdbarch_frame_args_skip (gdbarch, 8); >=20=20 > set_gdbarch_print_insn (gdbarch, print_insn_microblaze); > -- > 1.7.1 >=20 > Thanks & Regards > Ajit -- Joel --_002_37378DC5BCD0EE48BA4B082E0B55DFAA40B91730XAPPVEXMBX01xln_ Content-Type: application/octet-stream; name="0001-Patch-microblaze-Add-support-of-microblaze-software-.patch" Content-Description: 0001-Patch-microblaze-Add-support-of-microblaze-software-.patch Content-Disposition: attachment; filename="0001-Patch-microblaze-Add-support-of-microblaze-software-.patch"; size=4857; creation-date="Thu, 19 Jun 2014 18:16:06 GMT"; modification-date="Fri, 11 Jul 2014 12:32:59 GMT" Content-Transfer-Encoding: base64 Content-length: 6584 RnJvbSA4ZjM0OWEwZDljMDI3MTgyMTRjYWQzYzIwOWNlNWMwZjFmODcyYTM0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBaml0IEt1bWFyIEFn YXJ3YWwgPGFqaXRrdW1AeGhkc3BkZ251Lihub25lKT4KRGF0ZTogRnJpLCAx MSBKdWwgMjAxNCAxNzo1MzozMCArMDUzMApTdWJqZWN0OiBbUEFUQ0hdIFtQ YXRjaCwgbWljcm9ibGF6ZV06IEFkZCBzdXBwb3J0IG9mIG1pY3JvYmxhemUg c29mdHdhcmUgc2luZ2xlIHN0ZXBwaW5nLgoKVGhpcyBwYXRjaCBhZGRzIHRo ZSBzdXBwb3J0IG9mIG1pY3JvYmxhemUgc29mdHdhcmUgc2luZ2xlIHN0ZXBw aW5nLiBJdApoYW5kbGVzIHRoZSBjYXNlcyBvZiBicmFuY2ggYW5kIHJldHVy biB3aXRoIGRlbGF5IHNsb3QgYW5kIGltbSBpbnN0cnVjdGlvbgppbiBtaWNy b2JsYXplLgoKQ2hhbmdlTG9nOgoyMDE0LTA3LTExICBBaml0IEFnYXJ3YWwg IDxhaml0a3VtQHhpbGlueC5jb20+CgoJKiBtaWNyb2JsYXplLXRkZXAuYyAo bWljcm9ibGF6ZV9zb2Z0d2FyZV9zaW5nbGVfc3RlcCk6IE5ldy4KCShtaWNy b2JsYXplX2dkYmFyY2hfaW5pdCk6IFVzZSBvZiBzZXRfZ2RiYXJjaF9zb2Z0 d2FyZV9zaW5nbGVfc3RlcC4KClNpZ25lZC1vZmYtYnk6QWppdCBBZ2Fyd2Fs IGFqaXRrdW1AeGlsaW54LmNvbQotLS0KIGdkYi9taWNyb2JsYXplLXRkZXAu YyB8ICAxMDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogMSBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9u cygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nZGIvbWljcm9i bGF6ZS10ZGVwLmMgYi9nZGIvbWljcm9ibGF6ZS10ZGVwLmMKaW5kZXggMTRj MWI1Mi4uZGM3MzY0NCAxMDA2NDQKLS0tIGEvZ2RiL21pY3JvYmxhemUtdGRl cC5jCisrKyBiL2dkYi9taWNyb2JsYXplLXRkZXAuYwpAQCAtNjI4LDYgKzYy OCwxMTAgQEAgbWljcm9ibGF6ZV9zdGFic19hcmd1bWVudF9oYXNfYWRkciAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB0eXBlICp0eXBlKQog ICByZXR1cm4gKFRZUEVfTEVOR1RIICh0eXBlKSA9PSAxNik7CiB9CiAKKy8q IFRoaXMgZnVuY3Rpb24gaGFuZGxlcyBzb2Z0d2FyZSBzaW5nbGUgc3RlcCwg YnJhbmNoZXMgd2l0aCBkZWxheSBzbG90CisgICBpbW0gaW5zdHJ1Y3Rpb24g aW4gbWljcm9ibGF6ZS4gICovCitzdGF0aWMgaW50CittaWNyb2JsYXplX3Nv ZnR3YXJlX3NpbmdsZV9zdGVwIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUp Cit7CisgIHN0cnVjdCBnZGJhcmNoICphcmNoID0gZ2V0X2ZyYW1lX2FyY2gg KGZyYW1lKTsKKyAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZSA9IGdl dF9mcmFtZV9hZGRyZXNzX3NwYWNlIChmcmFtZSk7CisgIHN0cnVjdCBnZGJh cmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGFyY2gpOworICBlbnVt IGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAo YXJjaCk7CisgIGludCByZXQgPSAwOworICBpbnQgaWk7CisgIENPUkVfQURE UiBwYzsKKyAgbG9uZyBpbnNuOworICBlbnVtIG1pY3JvYmxhemVfaW5zdHIg bWluc3RyOworICBiZmRfYm9vbGVhbiBpc3Vuc2lnbmVkbnVtOworICBlbnVt IG1pY3JvYmxhemVfaW5zdHJfdHlwZSBpbnNuX3R5cGU7CisgIHNob3J0IGRl bGF5X3Nsb3RzOworICBpbnQgaW1tOworICBiZmRfYm9vbGVhbiBpbW1mb3Vu ZCA9IEZBTFNFOworICBDT1JFX0FERFIgYnJlYWtzWzJdID0gey0xLC0xfTsK KyAgQ09SRV9BRERSIGFkZHJlc3M7CisgIGludCB0YXJnZXR2YWxpZDsKKwor ICAvKiBTZXQgYSBicmVha3BvaW50IGF0IHRoZSBuZXh0IGluc3RydWN0aW9u LiBJZiB0aGUgY3VycmVudAorICAgICBpbnN0cnVjdGlvbiBpcyBhbiBpbW0s IHNldCBpdCBhdCB0aGUgaW5zdCBhZnRlci4gSWYgdGhlCisgICAgIGluc3Ry dWN0aW9uIGhhcyBhIGRlbGF5IHNsb3QsIHNraXAgdGhlIGRlbGF5IHNsb3Qu ICAqLworICBwYyA9IGdldF9mcmFtZV9wYyAoZnJhbWUpOworIAorICBpbnNu ID0gbWljcm9ibGF6ZV9mZXRjaF9pbnN0cnVjdGlvbiAocGMpOworCisgIG1p bnN0ciA9IGdldF9pbnNuX21pY3JvYmxhemUgKGluc24sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZpc3Vuc2lnbmVkbnVtLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmaW5zbl90eXBlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmZGVsYXlfc2xvdHMpOworCisg IGlmIChpbnNuX3R5cGUgPT0gaW1tZWRpYXRlX2luc3QpCisgICAgeworICAg ICAgaW50IHJkLCByYSwgcmI7CisKKyAgICAgIGltbWZvdW5kID0gVFJVRTsK KyAgICAgIG1pbnN0ciA9IG1pY3JvYmxhemVfZGVjb2RlX2luc24gKGluc24s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmEs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaW1t KTsKKyAgICAgIHBjID0gcGMgKyBJTlNUX1dPUkRfU0laRTsKKyAgICAgIGlu c24gPSBtaWNyb2JsYXplX2ZldGNoX2luc3RydWN0aW9uIChwYyk7CisgICAg ICBtaW5zdHIgPSBnZXRfaW5zbl9taWNyb2JsYXplIChpbnNuLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlzdW5zaWduZWRudW0s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaW5zbl90 eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRl bGF5X3Nsb3RzKTsKKyAgICB9CisgCisgIGlmIChpbnNuX3R5cGUgIT0gcmV0 dXJuX2luc3QpCisgICAgYnJlYWtzWzBdID0gcGMgKyBkZWxheV9zbG90cyAq IElOU1RfV09SRF9TSVpFICsgSU5TVF9XT1JEX1NJWkU7CisgICAgCisgIC8q IE5vdyBjaGVjayBmb3IgYnJhbmNoIG9yIHJldHVybiBpbnN0cnVjdGlvbnMu ICAqLworICBpZiAoaW5zbl90eXBlID09IGJyYW5jaF9pbnN0IHx8IGluc25f dHlwZSA9PSByZXR1cm5faW5zdCkKKyAgICB7CisgICAgICBpbnQgbGltbTsK KyAgICAgIGludCBscmQsIGxyYSwgbHJiOworICAgICAgaW50IHJhLCByYjsK KyAgICAgIGJmZF9ib29sZWFuIHRhcmdldHZhbGlkOworICAgICAgYmZkX2Jv b2xlYW4gdW5jb25kaXRpb25hbGJyYW5jaDsKKyAKKyAgICAgIG1pY3JvYmxh emVfZGVjb2RlX2luc24gKGluc24sICZscmQsICZscmEsICZscmIsICZsaW1t KTsKKyAgICAgIGlmIChscmEgPj0gMCAmJiBscmEgPCBNSUNST0JMQVpFX05V TV9SRUdTKQorICAgICAgICByYSA9IGdldF9mcmFtZV9yZWdpc3Rlcl91bnNp Z25lZCAoZnJhbWUsIGxyYSk7CisgICAgICBlbHNlCisgICAgICAgIHJhID0g MDsKKyAgICAgIGlmIChscmIgPj0gMCAmJiBscmIgPCBNSUNST0JMQVpFX05V TV9SRUdTKQorICAgICAgICByYiA9IGdldF9mcmFtZV9yZWdpc3Rlcl91bnNp Z25lZCAoZnJhbWUsIGxyYik7CisgICAgICBlbHNlCisgICAgICAgIHJiID0g MDsKKyAKKyAgICAgIGFkZHJlc3MgPSBtaWNyb2JsYXplX2dldF90YXJnZXRf YWRkcmVzcyAoaW5zbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW1tZm91bmQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltbSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnRhcmdldHZhbGlkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdW5jb25kaXRpb25h bGJyYW5jaCk7CisgICAgICAgIAorICAgICAgaWYgKCF1bmNvbmRpdGlvbmFs YnJhbmNoKQorICAgICAgICBicmVha3NbMV0gPSBhZGRyZXNzOworICAgIH0g IAorICAgIAorICAvKiBJbnNlcnQgdGhlIGJyZWFrcG9pbnRzLiAgKi8KKyAg aWYgKGJyZWFrc1swXSAhPSAtMSkKKyAgICB7CisgICAgICBpbnNlcnRfc2lu Z2xlX3N0ZXBfYnJlYWtwb2ludCAoYXJjaCwgYXNwYWNlLCBicmVha3NbMF0p OworICAgICAgcmV0ID0gMTsKKyAgICB9CisKKyAgaWYgKGJyZWFrc1sxXSAh PSAtMSkKKyAgICB7CisgICAgICBpbnNlcnRfc2luZ2xlX3N0ZXBfYnJlYWtw b2ludCAoYXJjaCwgYXNwYWNlLCBicmVha3NbMV0pOworICAgICAgcmV0ID0g MTsKKyAgICB9CisKKyAgcmV0dXJuIHJldDsKK30KKyAKIHN0YXRpYyB2b2lk CiBtaWNyb2JsYXplX3dyaXRlX3BjIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2Nh Y2hlLCBDT1JFX0FERFIgcGMpCiB7CkBAIC03MDgsNiArODEyLDggQEAgbWlj cm9ibGF6ZV9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5m bywgc3RydWN0IGdkYmFyY2hfbGlzdCAqYXJjaGVzKQogCiAgIHNldF9nZGJh cmNoX2JyZWFrcG9pbnRfZnJvbV9wYyAoZ2RiYXJjaCwgbWljcm9ibGF6ZV9i cmVha3BvaW50X2Zyb21fcGMpOwogCisgIHNldF9nZGJhcmNoX3NvZnR3YXJl X3NpbmdsZV9zdGVwIChnZGJhcmNoLCBtaWNyb2JsYXplX3NvZnR3YXJlX3Np bmdsZV9zdGVwKTsKKwogICBzZXRfZ2RiYXJjaF9mcmFtZV9hcmdzX3NraXAg KGdkYmFyY2gsIDgpOwogCiAgIHNldF9nZGJhcmNoX3ByaW50X2luc24gKGdk YmFyY2gsIHByaW50X2luc25fbWljcm9ibGF6ZSk7Ci0tIAoxLjcuMQoK --_002_37378DC5BCD0EE48BA4B082E0B55DFAA40B91730XAPPVEXMBX01xln_--