From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AFD17A04FD; Sun, 3 Apr 2022 20:12:20 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4A2694114B; Sun, 3 Apr 2022 20:12:20 +0200 (CEST) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10046.outbound.protection.outlook.com [40.107.1.46]) by mails.dpdk.org (Postfix) with ESMTP id C86594068A for ; Sun, 3 Apr 2022 20:12:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=epiE0IO9TxfAfe1qUi/5f4Pl8/ygXNn/wrH8dULAiiE=; b=7YKoBXlJZ1KUJtS9jmlKsFByJt06kRb8UcP9ErFh5iiMRA6z09Eu5FkDCyw7Zrkxjz2OJAO+91g0FYdnjBP5B1xieyQLVHNmomgN/TyUXWW7fhgYPU1nHILcNn36Anj/lmqYAr/Z/bUygm9TdJZTOlom90bDoZoyUHhGca9PXnQ= Received: from AS9PR06CA0017.eurprd06.prod.outlook.com (2603:10a6:20b:462::13) by AM4PR0802MB2195.eurprd08.prod.outlook.com (2603:10a6:200:5d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Sun, 3 Apr 2022 18:12:02 +0000 Received: from VE1EUR03FT012.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:462:cafe::11) by AS9PR06CA0017.outlook.office365.com (2603:10a6:20b:462::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31 via Frontend Transport; Sun, 3 Apr 2022 18:12:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT012.mail.protection.outlook.com (10.152.18.211) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.19 via Frontend Transport; Sun, 3 Apr 2022 18:12:01 +0000 Received: ("Tessian outbound facaf1373bbd:v118"); Sun, 03 Apr 2022 18:12:01 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 8a5fed3f539c1be5 X-CR-MTA-TID: 64aa7808 Received: from 02c0da163beb.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 428FF0FE-3464-4038-8C28-2DAD140A557E.1; Sun, 03 Apr 2022 18:11:50 +0000 Received: from EUR02-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 02c0da163beb.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Sun, 03 Apr 2022 18:11:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KnmQvCZL0kf56UwMCl6rSNFHbb8ygGW+d9DXmnBxnUmeXCuVZwECGJVAjw4ajDOGnwLCSzUkfPsKeNjwTlAwE5P6rv4QReeUI/58Hb/tthzjKCTgc7gUjQKUw/F7rVTSazAD+msoQ5/OVhhlNuJqUzwfIItJqJgm76awk20GYcEyrb7elZ4e7bcNkDDATpkoXqbhoceVTBE3jrdTIRs/BGCt1WJ0L+SEqo4iqt6AO2fZuqZ9y0gfQcifrDgo9T3q6CoC+OIvPmSxawrwg47SjsPLrKzj9q9Je9w+gZuuq5aEaDqOpJwq5C2d6fMEYUXGdhDYqSo5LL+wGwfvP/6/qQ== 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=epiE0IO9TxfAfe1qUi/5f4Pl8/ygXNn/wrH8dULAiiE=; b=EekX0NuB21lKxAYoyBrXXSH1VdCKPASgcHm98uH4ZCLpdZIDb5YG5pYQxa/3I3c6KTw30FPK0ybz8kCwlP/zb5SQnY+cxr01wj6xZSXgCgYCamTLUR9BYhshF46LYQYT0SJ1FbMFiHvEhDNmmscOj4AnO23ePP4Cu9BhiNv9d3v9CEGC+hEk8aKfWV4SBzfeVLvSekzv1qTgl4MNi9lpRv0pWkUNlIkyNC4vHM+FO0Zjk+8UWRxUQVBDpBJIxZ1gpYE4UleGAvbNbg8GbtGyja1bGdR+9ScDa/f/rXUk528VQIXCdaQmZL2PMxgOVD3VooMKfp4lHcNt5DynIUqkTg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=epiE0IO9TxfAfe1qUi/5f4Pl8/ygXNn/wrH8dULAiiE=; b=7YKoBXlJZ1KUJtS9jmlKsFByJt06kRb8UcP9ErFh5iiMRA6z09Eu5FkDCyw7Zrkxjz2OJAO+91g0FYdnjBP5B1xieyQLVHNmomgN/TyUXWW7fhgYPU1nHILcNn36Anj/lmqYAr/Z/bUygm9TdJZTOlom90bDoZoyUHhGca9PXnQ= Received: from AM8PR08MB6498.eurprd08.prod.outlook.com (2603:10a6:20b:364::11) by DB7PR08MB3115.eurprd08.prod.outlook.com (2603:10a6:5:1d::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Sun, 3 Apr 2022 18:11:47 +0000 Received: from AM8PR08MB6498.eurprd08.prod.outlook.com ([fe80::ec4f:1ad:e332:9f39]) by AM8PR08MB6498.eurprd08.prod.outlook.com ([fe80::ec4f:1ad:e332:9f39%7]) with mapi id 15.20.5123.031; Sun, 3 Apr 2022 18:11:46 +0000 From: Ola Liljedahl To: Honnappa Nagarahalli CC: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , "dev@dpdk.org" , "thomas@monjalon.net" , David Marchand , "onar.olsen@ericsson.com" , nd , "konstantin.ananyev@intel.com" , "mb@smartsharesystems.com" , "stephen@networkplumber.org" Subject: Re: [PATCH v3] eal: add seqlock Thread-Topic: [PATCH v3] eal: add seqlock Thread-Index: AQHYRdpxJQDMJ2hOYk29MTn7G+tdNazc77OAgAAVDICAAXsdgA== Date: Sun, 3 Apr 2022 18:11:46 +0000 Message-ID: <4153C295-275A-4AFE-9885-CAB26B2D860F@arm.com> References: <20220401150749.136921-1-mattias.ronnblom@ericsson.com> <3efba44b-1a2e-831e-1e2c-782639d83c24@arm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3696.80.82.1.1) Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-MS-Office365-Filtering-Correlation-Id: 736d2db9-98e5-4c60-dbab-08da159d738a x-ms-traffictypediagnostic: DB7PR08MB3115:EE_|VE1EUR03FT012:EE_|AM4PR0802MB2195:EE_ x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 3vSHma41t+tQdrTYSBjYUeQ8xjxym3o7a6NJdRPqdA5YOwxWw9IgDM4fGOU8jtOxc9a41zbrLsBClh+HnQn8inMgyUCHHsEPx5P0T8EkLQXZV5/zX/kuTHhZcb8F58EFkpaUxKKArQHi0t4ShLY+jYms54FTso8sCZZGX/6/FfivO69hyW3ZFWTWdohBnuf2djc5f/QJB/IY6X2bDxtcPNprekUtp5jIXRWOl3vHRsL+fP2xaWe5hjOTrG3NQTOQmDoD07mDlRh5b7IC4Q+Rl1lxa1KHTCKF5yDctKRq/kyGMBSZQ0PaxoIWFXKZe6oXxQEi0NTjwRNYTiog6WsuASEua6C5ZHWy/jCmAO0fL+aw+5c2/K7SoAUCAie0c8xmQuMNabM5OY2EYXMzVwWzpXbYCZ8pEv+rW0Spx9VjE9vxVvKmbfvVCT2P++Q5g0WAP5WZoASnZi4OYSTQJTMo5vpEdOchH2hpLxoixpTHR+160xpAlavgmCE49Q6ayGas+cPClB8glEha4iIaPRoC4cT9PoDTrB5go/Wjx7AMuuKCsJu6EJ9+BncnMMhK/A14hhBP5f+g5axCr5mSDaqkG5LPMd9RPey4ABOXGykSPzRFKhySWDPbzPxhbxXCtI3aJDGVrK8X1LGT4YiBsmVFH2e+gbeyAFcznA/w6YQTJnLRtBRPTPCVRGhpZXjTrHrqwhgZtxnG7friUE0OcyRDPXXKiD/9G07u5wo4XgZGmzI= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR08MB6498.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(38100700002)(316002)(2616005)(66476007)(83380400001)(4326008)(2906002)(8676002)(38070700005)(122000001)(6862004)(91956017)(26005)(186003)(66446008)(66946007)(76116006)(6636002)(54906003)(33656002)(66556008)(37006003)(64756008)(8936002)(6506007)(6512007)(36756003)(508600001)(53546011)(6486002)(86362001)(5660300002)(71200400001)(45980500001); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3115 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT012.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: b26c0da7-647e-43b7-69ef-08da159d6a9c X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ksLc2h62DMJ9lVa3o3i4ADUF2VBd1tRhdRdp0DMjO8ImN7XY9VnrGmDC80CJyCwwF3wG0/j1Cdgw+5PiOQJrmSyccjH+LZ0S4JdQzviqP2Q7XRvuGBhayfBkLvIdbrO5vx5V97VMdVNCfqptoffMV3lG1x++v3041zuavlWUyq/7WICk7HuSBRwjqaRoKNItDeG2AkuVH/R9KR0ZZjTv27kZAnx6DNVUZq2q8WRdNmeUhfk0BaOZD2Xcp8j+nJI8GArJ4IPOLpxXhBEcPel74WpMiLqtHXcMpvxnWsVokDfjdj2uHgC9LPgS+0tqOWwq+lBDLJHg/bb+aykiXa/ziiSa7ZTXxtzgQF0nquIy5pP20tG0pEleukvX+TcIeGrk4dl6TNGA2QXX2dCK4uHvv6XEP+5+jt/gG6h/sjIuALRNUg8mahkrQ6OKUA2mdmBb4sZyuFsDlPzBaiib9oRtEC0E5FT0UjgwmWpbtQv3EiV59udAU83KHeXV0uks8ys9cv6xiSWzfspEGCbQbwM/xKOIxgTTVVWn7/cJnIHl8EKf58e7TFYLzB9rBAJFnAfg+qP2tEdWkV6CU3qFEFuWKmQB8HiqZX6qT0+PHf5uxPzQbef12V6IzpxnRXvNLpszNRj7mNn/PScqdonuTMSPDQ== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230001)(4636009)(46966006)(36840700001)(26005)(36860700001)(83380400001)(47076005)(36756003)(336012)(186003)(107886003)(2616005)(2906002)(33656002)(8936002)(6512007)(316002)(54906003)(508600001)(5660300002)(81166007)(37006003)(6636002)(82310400004)(6486002)(53546011)(70586007)(8676002)(6862004)(70206006)(4326008)(356005)(86362001)(6506007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2022 18:12:01.7781 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 736d2db9-98e5-4c60-dbab-08da159d738a X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT012.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0802MB2195 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org KE5vdyB1c2luZyBtYWNPUyBNYWlsIHByb2dyYW0gaW4gcGxhaW4gdGV4dCBtb2RlLCBob3BlIHRo aXMgd29ya3MpDQoNCj4gT24gMiBBcHIgMjAyMiwgYXQgMjE6MzEsIEhvbm5hcHBhIE5hZ2FyYWhh bGxpIDxIb25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPiB3cm90ZToNCj4gDQo+IDxzbmlwPg0K PiANCj4+PiArX19ydGVfZXhwZXJpbWVudGFsDQo+Pj4gK3N0YXRpYyBpbmxpbmUgYm9vbA0KPj4+ ICtydGVfc2VxbG9ja19yZWFkX3RyeXVubG9jayhjb25zdCBydGVfc2VxbG9ja190ICpzZXFsb2Nr LCB1aW50MzJfdA0KPj4+ICsqYmVnaW5fc24pIHsNCj4+PiArCXVpbnQzMl90IGVuZF9zbjsNCj4+ PiArDQo+Pj4gKwkvKiBtYWtlIHN1cmUgdGhlIGRhdGEgbG9hZHMgaGFwcGVucyBiZWZvcmUgdGhl IHNuIGxvYWQgKi8NCj4+PiArCXJ0ZV9hdG9taWNfdGhyZWFkX2ZlbmNlKF9fQVRPTUlDX0FDUVVJ UkUpOw0KPj4+ICsNCj4+PiArCWVuZF9zbiA9IF9fYXRvbWljX2xvYWRfbigmc2VxbG9jay0+c24s IF9fQVRPTUlDX1JFTEFYRUQpOw0KPj4gDQo+PiBTaW5jZSB3ZSBhcmUgcmVhZGluZyBhbmQgcG90 ZW50aWFsbHkgcmV0dXJuaW5nIHRoZSBzZXF1ZW5jZSBudW1iZXIgaGVyZQ0KPj4gKHJlcGVhdGlu ZyB0aGUgcmVhZCBvZiB0aGUgcHJvdGVjdGVkIGRhdGEpLCB3ZSBuZWVkIHRvIHVzZSBsb2FkLWFj cXVpcmUuDQo+PiBJIGFzc3VtZSBpdCBpcyBub3QgZXhwZWN0ZWQgdGhhdCB0aGUgdXNlciB3aWxs IGNhbGwNCj4+IHJ0ZV9zZXFsb2NrX3JlYWRfbG9jaygpIGFnYWluLg0KPiBHb29kIHBvaW50LCB3 ZSBuZWVkIGEgbG9hZC1hY3F1aXJlIChkdWUgdG8gY2hhbmdlcyBkb25lIGluIHYzKS4NCj4gDQo+ PiANCj4+IFNlZWluZyB0aGlzIGltcGxlbWVudGF0aW9uLCBJIG1pZ2h0IGFjdHVhbGx5IHByZWZl ciB0aGUgb3JpZ2luYWwNCj4+IGltcGxlbWVudGF0aW9uLCBJIHRoaW5rIGl0IGlzIGNsZWFuZXIu IEJ1dCBJIHdvdWxkIGxpa2UgZm9yIHRoZSBiZWdpbiBmdW5jdGlvbg0KPj4gYWxzbyB0byB3YWl0 IGZvciBhbiBldmVuIHNlcXVlbmNlIG51bWJlciwgdGhlIGVuZCBmdW5jdGlvbiB3b3VsZCBvbmx5 IGhhdmUNCj4+IHRvIGNoZWNrIGZvciBzYW1lIHNlcXVlbmNlIG51bWJlciwgdGhpcyBtaWdodCBp bXByb3ZlIHBlcmZvcm1hbmNlIGEgbGl0dGxlDQo+PiBiaXQgYXMgcmVhZGVycyB3b24ndCBwZXJm b3JtIG9uZSBvciBzZXZlcmFsIGJyb2tlbiByZWFkcyB3aGlsZSBhIHdyaXRlIGlzIGluDQo+PiBw cm9ncmVzcy4gVGhlIGZ1bmN0aW9uIG5hbWVzIGFyZSBhIGRpZmZlcmVudCB0aGluZyB0aG91Z2gu DQo+IEkgdGhpbmsgd2UgbmVlZCB0byBiZSBvcHRpbWl6aW5nIGZvciB0aGUgY2FzZSB3aGVyZSB0 aGVyZSBpcyBubyBjb250ZW50aW9uIGJldHdlZW4gcmVhZGVycyBhbmQgd3JpdGVycyAoYXMgdGhh dCBoYXBwZW5zIG1vc3Qgb2YgdGhlIHRpbWUpLiBGcm9tIHRoaXMgcGVyc3BlY3RpdmUsIG5vdCBj aGVja2luZyBmb3IgYW4gZXZlbiBzZXEgbnVtYmVyIGluIHRoZSBiZWdpbiBmdW5jdGlvbiB3b3Vs ZCByZWR1Y2Ugb25lICdpZicgc3RhdGVtZW50Lg0KVGhlIG51bWJlciBvZiBzdGF0ZW1lbnRzIGlu IEMgaXMgbm90IHJlbGV2YW50LCBpbnN0ZWFkIHdlIG5lZWQgdG8gbG9vayBhdCB0aGUgZ2VuZXJh dGVkIGNvZGUuIE9uIHg4NiwgSSB3b3VsZCBhc3N1bWUgYW4gaWYtc3RhdGVtZW50IGxpa2Ug4oCc aWYgKChzbiAmIDEpIHx8IChzbiA9PSBzbC0+c24pKeKAnSB0byBnZW5lcmF0ZSB0d28gc2VwYXJh dGUgZXZhbHVhdGlvbnMgd2l0aCB0aGVpciBvd24gY29uZGl0aW9uYWwganVtcCBpbnN0cnVjdGlv bnMuIE9uIEFBcmNoNjQsIHRoZSB0d28gZXZhbHVhdGlvbnMgY291bGQgcHJvYmFibHkgYmUgY29t YmluZWQgdXNpbmcgYSBDQ01QIGluc3RydWN0aW9uIGFuZCBuZWVkIG9ubHkgb25lIGNvbmRpdGlv bmFsIGJyYW5jaCBpbnN0cnVjdGlvbi4gV2l0aCBicmFuY2ggcHJlZGljdGlvbiwgaXQgaXMgZG91 YnRmdWwgd2Ugd2lsbCBzZWUgYW55IGRpZmZlcmVuY2UgaW4gcGVyZm9ybWFuY2UuDQoNCj4gDQo+ IEdvaW5nIGJhY2sgdG8gdGhlIGVhcmxpZXIgbW9kZWwgaXMgYmV0dGVyIGFzIHdlbGwsIGJlY2F1 c2Ugb2YgdGhlIGxvYWQtYWNxdWlyZSByZXF1aXJlZCBpbiB0aGUgJ3J0ZV9zZXFsb2NrX3JlYWRf dHJ5dW5sb2NrJyBmdW5jdGlvbi4gVGhlIGVhcmxpZXIgbW9kZWwgd291bGQgbm90IGludHJvZHVj ZSB0aGUgbG9hZC1hY3F1aXJlIGZvciB0aGUgbm8gY29udGVudGlvbiBjYXNlLg0KVGhlIGVhcmxp ZXIgbW9kZWwgc3RpbGwgaGFkIGxvYWQtYWNxdWlyZSBpbiB0aGUgcmVhZF9iZWdpbiBmdW5jdGlv biB3aGljaCB3b3VsZCBoYXZlIHRvIGludm9rZWQgYWdhaW4uIFRoZXJlIGlzIG5vIGRpZmZlcmVu Y2UgaW4gdGhlIG51bWJlciBvciB0eXBlIG9mIG1lbW9yeSBhY2Nlc3Nlcy4gV2UganVzdCBuZWVk IHRvIGNvcHkgdGhlIGltcGxlbWVudGF0aW9uIG9mIHJlYWRfYmVnaW4gaW50byB0aGUgcmVhZF90 cnl1bmxvY2sgZnVuY3Rpb24gaWYgd2UgZGVjaWRlIHRoYXQgdGhlIHVzZXIgc2hvdWxkIG5vdCBo YXZlIHRvIHJlLWludm9rZSByZWFkX2JlZ2luIG9uIGEgZmFpbGVkIHJlYWRfdHJ5dW5sb2NrLg0K DQo+IA0KPj4gDQo+PiBUaGUgd3JpdGVyIHNpZGUgYmVoYXZlcyBtdWNoIG1vcmUgbGlrZSBhIGxv Y2sgd2l0aCBtdXR1YWwgZXhjbHVzaW9uIHNvDQo+PiB3cml0ZV9sb2NrL3dyaXRlX3VubG9jayBt YWtlcyBzZW5zZS4NCj4+IA0KPj4+ICsNCj4+PiArCWlmICh1bmxpa2VseShlbmRfc24gJiAxIHx8 ICpiZWdpbl9zbiAhPSBlbmRfc24pKSB7DQo+Pj4gKwkJKmJlZ2luX3NuID0gZW5kX3NuOw0KPj4+ ICsJCXJldHVybiBmYWxzZTsNCj4+PiArCX0NCj4+PiArDQo+Pj4gKwlyZXR1cm4gdHJ1ZTsNCj4+ PiArfQ0KPj4+ICsNCg0K