From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id 682E2388E80D for ; Tue, 15 Nov 2022 12:01:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 682E2388E80D Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=ibm.com Received: from pps.filterd (m0098410.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2AFBugwS032148; Tue, 15 Nov 2022 12:01:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=pp1; bh=fO6zLdGlsuI5pk5A8zK5iym1sfEwbV+fbBqlq8tqFXg=; b=Mmg4k0VcMjin3fKq0lydF7Hx2KL6MV/09G5VAGpaJQcVzJyzNkKPSY1c9nNwbiW8JsHU qCRJGlPJf2ihwUVCaYYQf4acUTBUGhAjur++7YiKsDJ71DxeeJTxc7ox5XiFe07EOy7n xz4/FbkAIMTHQW/07fi74ZVdICNv7VLVGgq6jXD5sWLBcOyUsuPWO8wGdX4/4UfVAeOe 2YGD29y2U18UGK/CBSghIJirPgx7bX8HEwxgCNgbtDDvcXtzEqHVqkicWvvwy7Nb3TSY S60FTG24FKzo/MpoN9fTkj4vi6qKuAqiAdr2m0jMJ9I3kjbz/ziktEOdVKsIPYiKu4OA yw== Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2175.outbound.protection.outlook.com [104.47.55.175]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3kvabbr2j9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 15 Nov 2022 12:01:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VaNsgTtBZSawYhNVTFu8bz0RNcMw1dvGy98lzujxqgReQpngHkHi1VKK0ICuIFpKc7ObHseNLuOL3lEvOA7Q0D6uvRZGZu00SZpSFx5T7rFcaZN6JEeiK2MNF70VKJoLMJIFHoLezRq2Mf7+1bO2l9xZ0TQdTuDaZU9YjeuogFvDd70Buww3DAKPm9h6ORSmtFJ9S32LFrWiW+y++mPBzoXtbunFa+9UJl0CRn/iz0ZP73DGeRvSYvdhsxqxm73vZSqKkwK0VMKxakPfIip+3aiV8skHkyXwMUh+EOl4onIB+NIyOylyjEvSG9/zJM+V1LQMFMBb05rGn1GaAv5afw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fO6zLdGlsuI5pk5A8zK5iym1sfEwbV+fbBqlq8tqFXg=; b=O8zaJ4AI5mGZZtLEp9QYUZzdEMFO9kqM9NYsgOUMzP55xuEKEe4rszyR4o+P7ZdDQNF2zh+QxSMVy0ABXXxOmGWpDw6tWHh6m9zGf8QgW28kJSrp6+OBn2OocXDY4Fdj0U9fWwmTwv5GG6km6Wpw02AxAJgJu25KHkpCbIoXjKW6H8XREqUijvTwSkRfTmP3LzmXF6SNDbEB/ISIFI0AOeTe4eQTyNTrUBqGLmvbOhv4DO/3FYsVDg9q1q+61uK+yaOVdiy5TbNm9V7h9UhLRGnsl1qbXzGuMkXG4MGd7zUyTsU2MbFRuTS3cwjDhc1rNhB5uIJegkmt3sKRdpxLOw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ibm.com; dmarc=pass action=none header.from=ibm.com; dkim=pass header.d=ibm.com; arc=none Received: from BY5PR15MB3540.namprd15.prod.outlook.com (2603:10b6:a03:1b6::29) by BYAPR15MB3031.namprd15.prod.outlook.com (2603:10b6:a03:b4::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.17; Tue, 15 Nov 2022 12:01:27 +0000 Received: from BY5PR15MB3540.namprd15.prod.outlook.com ([fe80::a9e0:881a:895f:5fb9]) by BY5PR15MB3540.namprd15.prod.outlook.com ([fe80::a9e0:881a:895f:5fb9%4]) with mapi id 15.20.5813.013; Tue, 15 Nov 2022 12:01:27 +0000 From: Aditya Kamath1 To: Ulrich Weigand , "simark@simark.ca" , "gdb-patches@sourceware.org" CC: Sangamesh Mallayya , Sanket Rathi Subject: Re: [PATCH] Enable multi process debugging for AIX Thread-Topic: [PATCH] Enable multi process debugging for AIX Thread-Index: AQHYtiqs7fBWvNWu7U6EFq8QRxtmC64V4wdUgA4pNoCABnmrI4ABP6GAgAymlimABtQZgIAA1h1fgAA+TwCAABJX+Q== Date: Tue, 15 Nov 2022 12:01:27 +0000 Message-ID: References: <44ad453e-6196-d334-312f-d5d0414f4476@simark.ca> <709f1a28ed9d4b0d4aac5cb6d6946e2de452a3ec.camel@de.ibm.com> <6a7ce1e363a8f8621f5bab256d35b3af30d6a308.camel@de.ibm.com> In-Reply-To: Accept-Language: en-IN, en-US Content-Language: en-IN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BY5PR15MB3540:EE_|BYAPR15MB3031:EE_ x-ms-office365-filtering-correlation-id: 6ca20e4f-ecad-4681-bbc4-08dac701203d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: RA86xbyB5JBFvYfpEr7h33z/Ai5OCL5tMYNldPijvuSjhBqbxYEpjZwHbG1Q8X0tXpqpzG9sweKfFlazBCRMDVrSSSupKebj3c8cjpGb9TVimcdEVETyr86MAhRS2FEN/Zt+3UioncM/IZQzx+W35p+oBIO7FwgkdP0FfI84UrifMYc2YhZlO4wR6mAXIfYgiY2RofGmWE2gXIGSDsMDAiCr0b9U0JT0/tL7Ul3drE1hpE2NFe8HXjS0XzJuBJz8JSYvqcM1+9q+dYh/DCvOc2kSepzlU7vTV3NYro91qmHOSejtT9y/R6isl4Yysp2XSE9p546aER7lBSrB49tf0Ae6K0b0LUGbwKG4RYAJ/4IgLWLMLlnyTjnnZRGGYWg8H5FQbKzGXxrm8OABhrhRyPnb7saYaj8w4nkLypG2c8UbQSPJc6Fy5C70xpnylKa7G3rwO0Niu4xOLGwmdphJsijA1Z5IADscZxUHHtK5I/Gerkxc2zwZry2euKWqKS2QYDBcKb1W1yQWgXEzCTxiESFd1UK7mb3gj+TLWTmAZ2NUN27nbiOqoj7ZViz++PTEMDP0VPgNn4AqZJ5EgHtFdpQERXU6730E/s6F8OeMLVatL9rzh7yOSL7P4+k2WylcrQz/xGJkYWzQHhxfZMhJ6Z+DeLISm7qB9HL1AaDJ+VjH3FYw6q1cKtkFl5dP9ryCn1s9TuTD1Fi1axuGzODMGUHxashCMwVdtD6g1WoLnWaDT9g4vrw9trWa5cJWNwtMXkZbAd2KvhQODgVh8MSBXg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR15MB3540.namprd15.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(376002)(396003)(39860400002)(366004)(346002)(451199015)(38070700005)(91956017)(33656002)(86362001)(19627405001)(26005)(99936003)(122000001)(55016003)(53546011)(9686003)(38100700002)(186003)(7696005)(83380400001)(6506007)(478600001)(110136005)(66946007)(316002)(54906003)(66446008)(66476007)(76116006)(52536014)(66556008)(8676002)(64756008)(71200400001)(4326008)(8936002)(2906002)(5660300002)(41300700001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?EewObFMTncYyTmbqxSS02sF01kKpFSzuYgroC8hZY7nLv2kEyzNQEu+19lQK?= =?us-ascii?Q?nPxQ9KfE/yC4Y3ok6Y4VtjMGOX1y1dSlH9aVZ/JKsBO/QnWXxas0jRInF2gk?= =?us-ascii?Q?MA1NjcdID/aME1ESDjlAGTE/1OwoMD789LcalMoo+Dcl1bWLqaL+rM3iOBTi?= =?us-ascii?Q?QN848jWz52JTvmFYdmUdWCoD7aGFBLGEwq5LR9tsMFWIC5MIVdv1U6aOnRFh?= =?us-ascii?Q?lzCcIL4HpEWqytGuujS104AznRMrhcaEpl80dobTb6NseFDNPVPNoCnT1VDV?= =?us-ascii?Q?DQp1g+vX90wIFnQ20CYKAKFxXehvpNKRd+5GOhvvmLBx5iTzRM3BfWEWwd/y?= =?us-ascii?Q?dJqJDG3TOoWhb+bRAMGnIWTWaGMF2A9RaLTbCpr2MXDUzGEvQciPPaNJ7VQS?= =?us-ascii?Q?jyGRla/d/Mt3IG7pjh27o9ptQQuiKH9stisoUDnaYFAOgzcBCROgwdzB8r5M?= =?us-ascii?Q?XJsr3VJw1Z5rFq/Cy2w36NSq9iM7p+WK+M38YeEShiIqDqZULdr3W+rsjwPJ?= =?us-ascii?Q?XLNKeDZerm0u3FJoROZ6G+mpgnwPhAMRNAz+HJSjFEGG8/uQKupSKLelQg8C?= =?us-ascii?Q?UZJhLPEgb2WGlt8hpeW5pfkXY94H+sW7EckLhRqhxqCr2Sx37vaFJPY9EdQZ?= =?us-ascii?Q?3rGDUNcmJg4j0Dz4tPxtrMNvpcWez3OcAr0Krtt1DrlNNYd/Bgp7hUaXD8yW?= =?us-ascii?Q?bXOS8hFcQFrZAGTaGSS5DhIcJgPguQpALkftB6Fj+nZvCjvi8Pv+dFvLE4Rn?= =?us-ascii?Q?bPQnQmq5x6hsV5GSZiLpvydnCbTuHas7ZHeD4m+gvE2X1vyRC9/1jiuoE9kw?= =?us-ascii?Q?AAZi/yaAXLE5uebtOf8Od2tOCiP5/Qbk41LdYTfcWZCchgBEAugIL2uyZ5Cq?= =?us-ascii?Q?Ezj2BxSS6lWyHaIKHiMSQbu36lBkLVIaJy15mTClOi9xqBO+NgAYW3Eb3cMD?= =?us-ascii?Q?7PlKyj7Pwz2JQ4cekMPLViJIqC5EmxJt7890y3LoMg8D2t/raSwh2PihgorK?= =?us-ascii?Q?+KmTcvmPD3cN/vezrIO8FSuXHPiiHkpaE1St5ExJy+HjK3CvCx6IOzEw78Q8?= =?us-ascii?Q?nFynOwhZa8Syse1xqPer9nGFjj7FSU00PuqUXRx8BRyUO5Eg+fe8JnX9jKlS?= =?us-ascii?Q?55J4Rx4SNYvP/BzQ9UfLqwkZmWn+dGQqdRDBazVqC2Eeill4+r81C5sJJZd6?= =?us-ascii?Q?W3vDqclbKtY60OOeh7yfTxiqqKEQr1DUNFA/FqKjbaoxhwwXJQXjHR7fj09G?= =?us-ascii?Q?ToY3NhZq4lGEWQGt0QOuzNA/G3GQm3HlB36MRPt9lqYzILcJL1ZKGZEj0Ng3?= =?us-ascii?Q?jrctB7JQqQyPuUeupQ19GTsggnOIZyjiwjhOnH2aMNSTAeB5hkzk4j8ixgpR?= =?us-ascii?Q?UXRyCRoyIQm74q1Xv2rNRef57wPWURGN0dxxD7lm1DK+4GIecboDHvyuRnvl?= =?us-ascii?Q?Pvz1vg1LEYsXcW3nAYUVlh9zROnh7npBsEltnVvt5lWzBi18TAbpvQtWP3H4?= =?us-ascii?Q?dBVok4vSWxjSkaWK62U3nHohI3uiXBF9gYyXorH4k+Tts9bNK8Yx7o9Td2Zx?= =?us-ascii?Q?AUure8e1l/+BJs0jjzqTOj1MLAW9TuHLY/LwZ5+d?= Content-Type: multipart/mixed; boundary="_004_BY5PR15MB3540506781FBFF86431FAB91D6049BY5PR15MB3540namp_" MIME-Version: 1.0 X-OriginatorOrg: ibm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR15MB3540.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ca20e4f-ecad-4681-bbc4-08dac701203d X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2022 12:01:27.5689 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fcf67057-50c9-4ad4-98f3-ffca64add9e9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: cnXbfb4zN4y7bjjEf6vtxDgUy7csrcvOHVdmyDri3E978Gxyyk3U30rB/w6JivtHYXKgiotoLFVaJcwgSQxGZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR15MB3031 X-Proofpoint-ORIG-GUID: rvFXzEOOTANrL1Xqr6OTjaPb70LLm4Yg X-Proofpoint-GUID: rvFXzEOOTANrL1Xqr6OTjaPb70LLm4Yg X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-15_06,2022-11-15_03,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 bulkscore=0 mlxlogscore=593 impostorscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 adultscore=0 phishscore=0 lowpriorityscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211150083 X-Spam-Status: No, score=-3.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,HTML_MESSAGE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_004_BY5PR15MB3540506781FBFF86431FAB91D6049BY5PR15MB3540namp_ Content-Type: multipart/alternative; boundary="_000_BY5PR15MB3540506781FBFF86431FAB91D6049BY5PR15MB3540namp_" --_000_BY5PR15MB3540506781FBFF86431FAB91D6049BY5PR15MB3540namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Ulrich, Hi Ulrich, I have made all the changes you mentioned for optimisation. Please find att= ached the patch. [See: 0001-Enable-multi-process-debugging-for-AIX.patch]. = Kindly see my comments below so it becomes easy for you. If all looks good kindly push this patch. If anything, else needed from my = end kindly let me know. Have a nice day ahead. Thanks and regards, Aditya. ------------------------ >You can just use ... &child_pid, 1 ... here, then you don't >need the separate variables Done >>+ auto it =3D std::find_if (aix_pending_children.begin (), >>+ aix_pending_children.end (), >>+ find_my_aix_parent); >This is now wrong, unfortunately. This only checks that >"find_my_aix_parent" returns any non-null value, but it >actually needs to check that it returns "parent_pid". I apologise for the same. I missed this. thank you for pointing it out.. >>+ my_parent =3D *it; >This line shouldn't be necessary. Removed.. >>+ continue; >Here (and elsewhere) make sure to use a tab instead of 8 spaces. >Also, there should be no whitespace at the end of the line. >>+ if (pid !=3D -1) >>+ { >This if is now no longer necessary. >>+ else >>+ break; > > } >>- while (pid =3D=3D -1); >>- >>+ } >Whitespace (indentation) looks wrong. >>+ /* 0x7f is signal 0. */ >>+ /* 0x17f and 0x137f in hexadecimal are status returned if >>+ if we follow parent, >>+ a switch is made to a child post parent execution >>+ and child continues its execution [user switches to child and >>+ presses continue]. */ >Use a single comment block and try to make the lines of about >equal length if possible. All of the above done.. ________________________________ From: Ulrich Weigand Sent: 15 November 2022 16:23 To: simark@simark.ca ; Aditya Kamath1 ; gdb-patches@sourceware.org Cc: Sangamesh Mallayya ; Sanket Rathi Subject: Re: [PATCH] Enable multi process debugging for AIX Aditya Kamath1 wrote: >I have made all the changes you mentioned for optimisation. Please find at= tached the patch. Unfortunately it looks like this introduced a bug to has_my_aix_child_repor= ted, see below. Otherwise, there's only a few coding style issues left, then th= is is ready to merge. >+static pid_t >+find_my_aix_parent (pid_t child_pid) >+{ >+ struct procsinfo ProcessBuffer1; >+ pid_t IndexPointer1 =3D child_pid; >+ int Count =3D 1; >+ >+ if (getprocs (&ProcessBuffer1, sizeof (ProcessBuffer1), >+ NULL, 0, &IndexPointer1, Count) !=3D 1) You can just use ... &child_pid, 1 ... here, then you don't need the separate variables. >+static pid_t >+has_my_aix_child_reported (pid_t parent_pid) >+{ >+ pid_t child =3D 0; >+ auto it =3D std::find_if (aix_pending_children.begin (), >+ aix_pending_children.end (), >+ find_my_aix_parent); This is now wrong, unfortunately. This only checks that "find_my_aix_parent" returns any non-null value, but it actually needs to check that it returns "parent_pid". This should be something along the lines of: auto it =3D std::find_if (aix_pending_children.begin (), aix_pending_children.end (), [=3D] (pid_t child_pid) { return find_my_aix_parent (child_pid) =3D=3D pa= rent_pid; }); >+has_my_aix_parent_reported (pid_t child_pid) >+{ >+ pid_t my_parent =3D find_my_aix_parent (child_pid); >+ auto it =3D std::find (aix_pending_parent.begin (), >+ aix_pending_parent.end (), >+ my_parent); >+ if (it !=3D aix_pending_parent.end ()) >+ { >+ my_parent =3D *it; This line shouldn't be necessary. > /* Ignore terminated detached child processes. */ > if (!WIFSTOPPED (status) && find_inferior_pid (this, pid) =3D=3D nu= llptr) >- pid =3D -1; >+ continue; Here (and elsewhere) make sure to use a tab instead of 8 spaces. Also, there should be no whitespace at the end of the line. >+ if (pid !=3D -1) >+ { This if is now no longer necessary. >+ else >+ break; > } >- while (pid =3D=3D -1); >- >+ } Whitespace (indentation) looks wrong. >+ /* 0x7f is signal 0. */ >+ /* 0x17f and 0x137f in hexadecimal are status returned if >+ if we follow parent, >+ a switch is made to a child post parent execution >+ and child continues its execution [user switches to child and >+ presses continue]. */ Use a single comment block and try to make the lines of about equal length if possible. Bye, Ulrich --_000_BY5PR15MB3540506781FBFF86431FAB91D6049BY5PR15MB3540namp_-- --_004_BY5PR15MB3540506781FBFF86431FAB91D6049BY5PR15MB3540namp_ Content-Type: application/octet-stream; name="0001-Enable-multi-process-debugging-for-AIX.patch" Content-Description: 0001-Enable-multi-process-debugging-for-AIX.patch Content-Disposition: attachment; filename="0001-Enable-multi-process-debugging-for-AIX.patch"; size=8100; creation-date="Tue, 15 Nov 2022 12:00:54 GMT"; modification-date="Tue, 15 Nov 2022 12:01:03 GMT" Content-Transfer-Encoding: base64 RnJvbSA5OGNkZWZkNmZjYjFhNGI5Y2NhYWNiMWUyZWM5Y2ZmYjlhOWIxYWRj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVmlkeWFk aGFyIEthbWF0aCA8QWRpdHlhLkthbWF0aDFAaWJtLmNvbT4KRGF0ZTogVHVl LCAxNSBOb3YgMjAyMiAwNTo1MDo1MiAtMDYwMApTdWJqZWN0OiBbUEFUQ0hd IEVuYWJsZSBtdWx0aSBwcm9jZXNzIGRlYnVnZ2luZyBmb3IgQUlYCgpXaXRo IHRoaXMgcGF0Y2ggdXNlcnMgd2l0aCBBSVggb3BlcmF0aW5nIHN5c3RlbSB3 aWxsIGJlIGFibGUgdG8gZGVidWcgbXVsdGlwbGUgcHJvY2VzcyBzaW11bGF0 YW5lb3VzbHkgYmUgaXQgYSBwYXJlbnQgb3IgYSBjaGlsZCBwcm9jZXNzLgot LS0KIGdkYi9yczYwMDAtYWl4LW5hdC5jIHwgMTg3ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2Vk LCAxNzkgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9nZGIvcnM2MDAwLWFpeC1uYXQuYyBiL2dkYi9yczYwMDAtYWl4LW5h dC5jCmluZGV4IGNiMTQxNDI3Njk2Li5iZTAwNmMzNDg2NyAxMDA2NDQKLS0t IGEvZ2RiL3JzNjAwMC1haXgtbmF0LmMKKysrIGIvZ2RiL3JzNjAwMC1haXgt bmF0LmMKQEAgLTU0LDYgKzU0LDEwIEBACiAjaW5jbHVkZSA8c3lzL2xkci5o PgogI2luY2x1ZGUgPHN5cy9zeXN0ZW1jZmcuaD4KIAorLyogSGVhZGVyIGZp bGVzIGZvciBnZXR0aW5nIHBwaWQgaW4gQUlYIG9mIGEgY2hpbGQgcHJvY2Vz cy4gICovCisjaW5jbHVkZSA8cHJvY2luZm8uaD4KKyNpbmNsdWRlIDxzeXMv dHlwZXMuaD4KKyAKIC8qIE9uIEFJWDQuMyssIHN5cy9sZHIuaCBwcm92aWRl cyBkaWZmZXJlbnQgdmVyc2lvbnMgb2Ygc3RydWN0IGxkX2luZm8gZm9yCiAg ICBkZWJ1Z2dpbmcgMzItYml0IGFuZCA2NC1iaXQgcHJvY2Vzc2VzLiAgRGVm aW5lIGEgdHlwZWRlZiBhbmQgbWFjcm9zIGZvcgogICAgYWNjZXNzaW5nIGZp ZWxkcyBpbiB0aGUgYXBwcm9wcmlhdGUgc3RydWN0dXJlcy4gICovCkBAIC05 MSwxMCArOTUsMTMgQEAgY2xhc3MgcnM2MDAwX25hdF90YXJnZXQgZmluYWwg OiBwdWJsaWMgaW5mX3B0cmFjZV90YXJnZXQKIAogICBwdGlkX3Qgd2FpdCAo cHRpZF90LCBzdHJ1Y3QgdGFyZ2V0X3dhaXRzdGF0dXMgKiwgdGFyZ2V0X3dh aXRfZmxhZ3MpIG92ZXJyaWRlOwogCisgIC8qIEZvcmsgZGV0ZWN0aW9uIHJl bGF0ZWQgZnVuY3Rpb25zLCBGb3IgYWRkaW5nIG11bHRpIHByb2Nlc3MgZGVi dWdnaW5nCisgICAgIHN1cHBvcnQuICAqLworICB2b2lkIGZvbGxvd19mb3Jr IChpbmZlcmlvciAqLCBwdGlkX3QsIHRhcmdldF93YWl0a2luZCwgYm9vbCwg Ym9vbCkgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKIAotICB2b2lkIHBvc3Rf c3RhcnR1cF9pbmZlcmlvciAocHRpZF90IHB0aWQpIG92ZXJyaWRlCi0gIHsg LyogTm90aGluZy4gICovIH0KKyAgdm9pZCBwb3N0X3N0YXJ0dXBfaW5mZXJp b3IgKHB0aWRfdCBwdGlkKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgZW51 bSB0YXJnZXRfeGZlcl9zdGF0dXMKQEAgLTEwNyw2ICsxMTQsODYgQEAgY2xh c3MgcnM2MDAwX25hdF90YXJnZXQgZmluYWwgOiBwdWJsaWMgaW5mX3B0cmFj ZV90YXJnZXQKIAogc3RhdGljIHJzNjAwMF9uYXRfdGFyZ2V0IHRoZV9yczYw MDBfbmF0X3RhcmdldDsKIAorLyogVGhlIGJlbG93IGRlY2xhcmF0aW9uIGlz IHRvIHRyYWNrIG51bWJlciBvZiB0aW1lcywgcGFyZW50IGhhcworICAgcmVw b3J0ZWQgZm9yayBldmVudCBiZWZvcmUgaXRzIGNoaWxkcmVuLiAgKi8KKwor c3RhdGljIHN0ZDo6bGlzdDxwaWRfdD4gYWl4X3BlbmRpbmdfcGFyZW50Owor CisvKiBUaGUgYmVsb3cgZGVjbGFyYXRpb24gaXMgZm9yIGEgY2hpbGQgcHJv Y2VzcyBldmVudCB0aGF0CisgICBpcyByZXBvcnRlZCBiZWZvcmUgaXRzIGNv cnJlc3BvbmRpbmcgcGFyZW50IHByb2Nlc3MgaW4KKyAgIHRoZSBldmVudCBv ZiBhIGZvcmsgKCkuICAqLworCitzdGF0aWMgc3RkOjpsaXN0PHBpZF90PiBh aXhfcGVuZGluZ19jaGlsZHJlbjsKKworc3RhdGljIHZvaWQKK2FpeF9yZW1l bWJlcl9jaGlsZCAocGlkX3QgcGlkKQoreworICBhaXhfcGVuZGluZ19jaGls ZHJlbi5wdXNoX2Zyb250IChwaWQpOworfQorCitzdGF0aWMgdm9pZAorYWl4 X3JlbWVtYmVyX3BhcmVudCAocGlkX3QgcGlkKQoreworICBhaXhfcGVuZGlu Z19wYXJlbnQucHVzaF9mcm9udCAocGlkKTsKK30KKworLyogVGhpcyBmdW5j dGlvbiByZXR1cm5zIGEgcGFyZW50IG9mIGEgY2hpbGQgcHJvY2Vzcy4gICov CisKK3N0YXRpYyBwaWRfdAorZmluZF9teV9haXhfcGFyZW50IChwaWRfdCBj aGlsZF9waWQpCit7CisgIHN0cnVjdCBwcm9jc2luZm8gUHJvY2Vzc0J1ZmZl cjE7CisgIAorICBpZiAoZ2V0cHJvY3MgKCZQcm9jZXNzQnVmZmVyMSwgc2l6 ZW9mIChQcm9jZXNzQnVmZmVyMSksCisgICAgICBOVUxMLCAwLCAmY2hpbGRf cGlkLCAxKSAhPSAxKQorICAgIHJldHVybiAwOyAKKyAgICAgCisgIGVsc2Ug ICAKKyAgICByZXR1cm4gUHJvY2Vzc0J1ZmZlcjEucGlfcHBpZDsKKyAgCit9 CisKKy8qIEluIHRoZSBiZWxvdyBmdW5jdGlvbiB3ZSBjaGVjayBpZiB0aGVy ZSB3YXMgYW55IGNoaWxkCisgICBwcm9jZXNzIHBlbmRpbmcuICBJZiBpdCBl eGlzdHMgd2UgcmV0dXJuIGl0IGZyb20gdGhlCisgICBsaXN0LCBvdGhlcndp c2Ugd2UgcmV0dXJuIGEgbnVsbC4gICovCisKK3N0YXRpYyBwaWRfdAoraGFz X215X2FpeF9jaGlsZF9yZXBvcnRlZCAocGlkX3QgcGFyZW50X3BpZCkKK3sK KyAgcGlkX3QgY2hpbGQgPSAwOworICBhdXRvIGl0ID0gc3RkOjpmaW5kX2lm IChhaXhfcGVuZGluZ19jaGlsZHJlbi5iZWdpbiAoKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgYWl4X3BlbmRpbmdfY2hpbGRyZW4uZW5kICgpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICBbPV0gKHBpZF90IGNoaWxkX3Bp ZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBmaW5kX215X2FpeF9wYXJlbnQgKGNo aWxkX3BpZCkgPT0gcGFyZW50X3BpZDsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgfSk7IAorICBpZiAoaXQgIT0gYWl4X3BlbmRpbmdfY2hpbGRyZW4u ZW5kICgpKQorICB7CisgICAgY2hpbGQgPSAqaXQ7IAorICAgIGFpeF9wZW5k aW5nX2NoaWxkcmVuLmVyYXNlIChpdCk7CisgIH0gICAKKyAgcmV0dXJuIGNo aWxkOworfQorCisvKiBJbiB0aGUgYmVsb3cgZnVuY3Rpb24gd2UgY2hlY2sg aWYgdGhlcmUgd2FzIGFueSBwYXJlbnQgCisgICBwcm9jZXNzIHBlbmRpbmcu ICBJZiBpdCBleGlzdHMgd2UgcmV0dXJuIGl0IGZyb20gdGhlCisgICBsaXN0 LCBvdGhlcndpc2Ugd2UgcmV0dXJuIGEgbnVsbC4gICovCisKK3N0YXRpYyBw aWRfdAoraGFzX215X2FpeF9wYXJlbnRfcmVwb3J0ZWQgKHBpZF90IGNoaWxk X3BpZCkKK3sKKyAgcGlkX3QgbXlfcGFyZW50ID0gZmluZF9teV9haXhfcGFy ZW50IChjaGlsZF9waWQpOworICBhdXRvIGl0ID0gc3RkOjpmaW5kIChhaXhf cGVuZGluZ19wYXJlbnQuYmVnaW4gKCksCisgICAgICAgICAgICAgICAgICAg ICAgIGFpeF9wZW5kaW5nX3BhcmVudC5lbmQgKCksCisgICAgICAgICAgICAg ICAgICAgICAgIG15X3BhcmVudCk7CisgIGlmIChpdCAhPSBhaXhfcGVuZGlu Z19wYXJlbnQuZW5kICgpKQorICB7CisgICAgYWl4X3BlbmRpbmdfcGFyZW50 LmVyYXNlIChpdCk7CisgICAgcmV0dXJuIG15X3BhcmVudDsKKyAgfQorICBy ZXR1cm4gMDsKK30KKwogLyogR2l2ZW4gUkVHTk8sIGEgZ2RiIHJlZ2lzdGVy IG51bWJlciwgcmV0dXJuIHRoZSBjb3JyZXNwb25kaW5nCiAgICBudW1iZXIg c3VpdGFibGUgZm9yIHVzZSBhcyBhIHB0cmFjZSgpIHBhcmFtZXRlci4gIFJl dHVybiAtMSBpZgogICAgdGhlcmUncyBubyBzdWl0YWJsZSBtYXBwaW5nLiAg QWxzbywgc2V0IHRoZSBpbnQgcG9pbnRlZCB0byBieQpAQCAtMTg3LDYgKzI3 NCw0NyBAQCByczYwMDBfcHRyYWNlNjQgKGludCByZXEsIGludCBpZCwgbG9u ZyBsb25nIGFkZHIsIGludCBkYXRhLCB2b2lkICpidWYpCiAgIHJldHVybiBy ZXQ7CiB9CiAKK3ZvaWQgcnM2MDAwX25hdF90YXJnZXQ6OnBvc3Rfc3RhcnR1 cF9pbmZlcmlvciAocHRpZF90IHB0aWQpCit7CisKKyAgLyogSW4gQUlYIHRv IHR1cm4gb24gbXVsdGkgcHJvY2VzcyBkZWJ1Z2dpbmcgaW4gcHRyYWNlCisg ICAgIFBUX01VTFRJIGlzIHRoZSBvcHRpb24gdG8gYmUgcGFzc2VkLAorICAg ICB3aXRoIHRoZSBwcm9jZXNzIElEIHdoaWNoIGNhbiBmb3JrICgpIGFuZAor ICAgICB0aGUgZGF0YSBwYXJhbWV0ZXIgW2ZvdXJ0aCBwYXJhbWV0ZXJdIG11 c3QgYmUgMS4gICovCisKKyAgaWYgKCFBUkNINjQgKCkpCisgICAgcnM2MDAw X3B0cmFjZTMyIChQVF9NVUxUSSwgcHRpZC5waWQoKSwgMCwgMSwgMCk7Cisg IGVsc2UKKyAgICByczYwMDBfcHRyYWNlNjQgKFBUX01VTFRJLCBwdGlkLnBp ZCgpLCAwLCAxLCAwKTsKK30KKwordm9pZAorcnM2MDAwX25hdF90YXJnZXQ6 OmZvbGxvd19mb3JrIChpbmZlcmlvciAqY2hpbGRfaW5mLCBwdGlkX3QgY2hp bGRfcHRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3dh aXRraW5kIGZvcmtfa2luZCwgYm9vbCBmb2xsb3dfY2hpbGQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBib29sIGRldGFjaF9mb3JrKQoreworCisgIC8qIE9uY2UgdGhlIGZvcmsg ZXZlbnQgaXMgZGV0ZWN0ZWQgdGhlIGluZnJ1bi5jIGNvZGUKKyAgICAgY2Fs bHMgdGhlIHRhcmdldF9mb2xsb3dfZm9yayB0byB0YWtlIGNhcmUgb2YKKyAg ICAgZm9sbG93IGNoaWxkIGFuZCBkZXRhY2ggdGhlIGNoaWxkIGFjdGl2aXR5 IHdoaWNoIGlzCisgICAgIGRvbmUgdXNpbmcgdGhlIGZ1bmN0aW9uIGJlbG93 LiAgKi8KKworICBpbmZfcHRyYWNlX3RhcmdldDo6Zm9sbG93X2ZvcmsgKGNo aWxkX2luZiwgY2hpbGRfcHRpZCwgZm9ya19raW5kLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19jaGlsZCwgZGV0 YWNoX2ZvcmspOworCisgIC8qIElmIHdlIGRldGFjaCBmb3JrIGFuZCBmb2xs b3cgY2hpbGQgd2UgZG8gbm90IHdhbnQgdGhlIGNoaWxkCisgICAgIHByb2Nl c3MgdG8gZ2VuZWF0ZSBldmVudHMgdGhhdCBwdHJhY2UgY2FuIHRyYWNlLiAg SGVuY2Ugd2UKKyAgICAgZGV0YWNoIGl0LiAgKi8KKworICBpZiAoZGV0YWNo X2ZvcmsgJiYgIWZvbGxvd19jaGlsZCkKKyAgeworICAgIGlmIChBUkNINjQg KCkpCisgICAgICByczYwMDBfcHRyYWNlNjQgKFBUX0RFVEFDSCwgY2hpbGRf cHRpZC5waWQgKCksIDAsIDAsIDApOworICAgIGVsc2UKKyAgICAgIHJzNjAw MF9wdHJhY2UzMiAoUFRfREVUQUNILCBjaGlsZF9wdGlkLnBpZCAoKSwgMCwg MCwgMCk7CisgIH0KK30KKwogLyogRmV0Y2ggcmVnaXN0ZXIgUkVHTk8gZnJv bSB0aGUgaW5mZXJpb3IuICAqLwogCiBzdGF0aWMgdm9pZApAQCAtNTA0LDcg KzYzMiw3IEBAIHJzNjAwMF9uYXRfdGFyZ2V0Ojp3YWl0IChwdGlkX3QgcHRp ZCwgc3RydWN0IHRhcmdldF93YWl0c3RhdHVzICpvdXJzdGF0dXMsCiAgIHBp ZF90IHBpZDsKICAgaW50IHN0YXR1cywgc2F2ZV9lcnJubzsKIAotICBkbwor ICB3aGlsZSAoMSkgCiAgICAgewogICAgICAgc2V0X3NpZ2ludF90cmFwICgp OwogCkBAIC01MjksMTcgKzY1Nyw2MCBAQCByczYwMDBfbmF0X3RhcmdldDo6 d2FpdCAocHRpZF90IHB0aWQsIHN0cnVjdCB0YXJnZXRfd2FpdHN0YXR1cyAq b3Vyc3RhdHVzLAogCiAgICAgICAvKiBJZ25vcmUgdGVybWluYXRlZCBkZXRh Y2hlZCBjaGlsZCBwcm9jZXNzZXMuICAqLwogICAgICAgaWYgKCFXSUZTVE9Q UEVEIChzdGF0dXMpICYmIGZpbmRfaW5mZXJpb3JfcGlkICh0aGlzLCBwaWQp ID09IG51bGxwdHIpCi0JcGlkID0gLTE7CisJY29udGludWU7CQorICAgICAg CisgICAgICAvKiBDaGVjayBmb3IgYSBmb3JrICgpIGV2ZW50LiAgKi8KKyAg ICAgIGlmICgoc3RhdHVzICYgMHhmZikgPT0gV19TRldURUQpCisgICAgICB7 CisgICAgICAgIC8qIENoZWNraW5nIHdoZXRoZXIgaXQgaXMgYSBwYXJlbnQg b3IgYSBjaGlsZCBldmVudC4gICovCisKKyAgICAgICAgLyogSWYgdGhlIGV2 ZW50IGlzIGEgY2hpbGQgd2UgY2hlY2sgaWYgdGhlcmUgd2FzIGEgcGFyZW50 CisgICAgICAgICAgIGV2ZW50IHJlY29yZGVkIGJlZm9yZS4gIElmIHllcyB3 ZSBnb3QgdGhlIHBhcmVudCBjaGlsZAorICAgICAgICAgICByZWxhdGlvbnNo aXAuICBJZiBub3Qgd2UgcHVzaCB0aGlzIGNoaWxkIGFuZCB3YWl0IGZvcgor ICAgICAgICAgICB0aGUgbmV4dCBmb3JrICgpIGV2ZW50LiAgKi8KKworICAg ICAgICBpZiAoZmluZF9pbmZlcmlvcl9waWQgKHRoaXMsIHBpZCkgPT0gbnVs bHB0cikKKyAgICAgICAgICB7CisgICAgICAgICAgICBwaWRfdCBwYXJlbnRf cGlkID0gaGFzX215X2FpeF9wYXJlbnRfcmVwb3J0ZWQgKHBpZCk7CisgICAg ICAgICAgICBpZiAocGFyZW50X3BpZCA+IDApCisgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgIG91cnN0YXR1cy0+c2V0X2ZvcmtlZCAocHRpZF90IChw aWQpKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHB0aWRfdCAocGFyZW50X3Bp ZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhaXhfcmVtZW1iZXJf Y2hpbGQgKHBpZCk7CisgICAgICAgICAgfQorCisgICAgICAgICAgLyogSWYg dGhlIGV2ZW50IGlzIGEgcGFyZW50IHdlIGNoZWNrIGlmIHRoZXJlIHdhcyBh IGNoaWxkCisgICAgICAgICAgICAgZXZlbnQgcmVjb3JkZWQgYmVmb3JlLiAg SWYgeWVzIHdlIGdvdCB0aGUgcGFyZW50IGNoaWxkCisgICAgICAgICAgICAg cmVsYXRpb25zaGlwLiAgSWYgbm90IHdlIHB1c2ggdGhpcyBwYXJlbnQgYW5k IHdhaXQgZm9yCisgICAgICAgICAgICAgdGhlIG5leHQgZm9yayAoKSBldmVu dC4gICovCisKKyAgICAgICAgZWxzZQorICAgICAgICAgIHsKKyAgICAgICAg ICAgIHBpZF90IGNoaWxkX3BpZCA9IGhhc19teV9haXhfY2hpbGRfcmVwb3J0 ZWQgKHBpZCk7CisgICAgICAgICAgICBpZiAoY2hpbGRfcGlkID4gMCkKKyAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgb3Vyc3RhdHVzLT5zZXRfZm9y a2VkIChwdGlkX3QgKGNoaWxkX3BpZCkpOworICAgICAgICAgICAgICByZXR1 cm4gcHRpZF90IChwaWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg YWl4X3JlbWVtYmVyX3BhcmVudCAocGlkKTsKKyAgICAgICAgICB9ICAgCisg ICAgICAgIGNvbnRpbnVlOworICAgICAgfQorICAgICAgZWxzZQorICAgICAg ICBicmVhazsKICAgICB9Ci0gIHdoaWxlIChwaWQgPT0gLTEpOwotCiAgIC8q IEFJWCBoYXMgYSBjb3VwbGUgb2Ygc3RyYW5nZSByZXR1cm5zIGZyb20gd2Fp dCgpLiAgKi8KIAogICAvKiBzdG9wIGFmdGVyIGxvYWQiIHN0YXR1cy4gICov CiAgIGlmIChzdGF0dXMgPT0gMHg1N2MpCiAgICAgb3Vyc3RhdHVzLT5zZXRf bG9hZGVkICgpOwotICAvKiBzaWduYWwgMC4gIEkgaGF2ZSBubyBpZGVhIHdo eSB3YWl0KDIpIHJldHVybnMgd2l0aCB0aGlzIHN0YXR1cyB3b3JkLiAgKi8K LSAgZWxzZSBpZiAoc3RhdHVzID09IDB4N2YpCisgIC8qIDB4N2YgaXMgc2ln bmFsIDAuICAqLworICAvKiAweDE3ZiBhbmQgMHgxMzdmIGluIGhleGFkZWNp bWFsIGFyZSBzdGF0dXMgcmV0dXJuZWQgYW5kICovIAorICAvKiB0aGVuIGlm IHdlIGZvbGxvdyBwYXJlbnQsIGEgc3dpdGNoIGlzIG1hZGUgdG8gYSBjaGls ZCAqLworICAvKiBwb3N0IHBhcmVudCBleGVjdXRpb24gYW5kIGNoaWxkIGNv bnRpbnVlcyBpdHMgZXhlY3V0aW9uICovIAorICAvKiBbdXNlciBzd2l0Y2hl cyB0byBjaGlsZCBhbmQgcHJlc3NlcyBjb250aW51ZV0uICAqLworICBlbHNl IGlmIChzdGF0dXMgPT0gMHg3ZiB8fCBzdGF0dXMgPT0gMHgxN2YgfHwgc3Rh dHVzID09IDB4MTM3ZikKICAgICBvdXJzdGF0dXMtPnNldF9zcHVyaW91cyAo KTsKICAgLyogQSBub3JtYWwgd2FpdHN0YXR1cy4gIExldCB0aGUgdXN1YWwg bWFjcm9zIGRlYWwgd2l0aCBpdC4gICovCiAgIGVsc2UKLS0gCjIuMzEuMQoK --_004_BY5PR15MB3540506781FBFF86431FAB91D6049BY5PR15MB3540namp_--