From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5E373CD3439 for ; Wed, 6 May 2026 21:53:26 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B8FBE10EECF; Wed, 6 May 2026 21:53:25 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="tx1m0cua"; dkim-atps=neutral Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by gabe.freedesktop.org (Postfix) with ESMTPS id CAF5510EECF for ; Wed, 6 May 2026 21:53:23 +0000 (UTC) Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 422B560583; Wed, 6 May 2026 21:53:23 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AA3B9C2BCB2; Wed, 6 May 2026 21:53:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778104403; bh=qKv1bN6NFqhDPUVV2w2mU26ZHoUM5hP8VQLgogXE4sc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tx1m0cuaaursPkcJv7cgw0iDjIfcpsLTHSyCvUtQteNtqM7YWr2DkQTwF73B8YQ9c FlF/h0RefD6oKqkkJf8CBBxy1twk55EpmD/8NXejAcpbfAma/aiefFVj943mO3RDFS FxxY4IzHaOsejMBKK3vxD18N/jLkRP7X3WcMldVtHcELHt2BzVtRmbzHWQs5tZ0tNe LeUwlB30CDd5EOEjr3jcXBi/Em6GmgArWaUaYuSqk1iaILBlhrFcfvi2oHAXuYojB6 ykcnXQ+bvYyj68YMx29GWRXxQI7PW4gPs0AmFABqR3/gBKBROEwLBISiuHAR3fThsb dnoSFUCYP5Dow== From: Danilo Krummrich To: gregkh@linuxfoundation.org, rafael@kernel.org, acourbot@nvidia.com, aliceryhl@google.com, david.m.ertman@intel.com, ira.weiny@intel.com, leon@kernel.org, viresh.kumar@linaro.org, m.wilczynski@samsung.com, ukleinek@kernel.org, bhelgaas@google.com, kwilczynski@kernel.org, abdiel.janulgue@gmail.com, robin.murphy@arm.com, markus.probst@posteo.de, ojeda@kernel.org, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, igor.korotin@linux.dev, daniel.almeida@collabora.com Cc: driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, linux-pm@vger.kernel.org, linux-pwm@vger.kernel.org, linux-pci@vger.kernel.org, rust-for-linux@vger.kernel.org, Danilo Krummrich Subject: [PATCH v2 18/25] rust: io: make IoMem and ExclusiveIoMem lifetime-parameterized Date: Wed, 6 May 2026 23:50:54 +0200 Message-ID: <20260506215113.851360-19-dakr@kernel.org> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260506215113.851360-1-dakr@kernel.org> References: <20260506215113.851360-1-dakr@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QWRkIGEgbGlmZXRpbWUgcGFyYW1ldGVyIHRvIElvTWVtPCdib3VuZCwgU0laRT4gYW5kCkV4Y2x1 c2l2ZUlvTWVtPCdib3VuZCwgU0laRT4sIHN0b3JpbmcgYSAmJ2JvdW5kIERldmljZTxCb3VuZD4g cmVmZXJlbmNlCnRvIHRpZSB0aGUgbWFwcGluZyB0byB0aGUgZGV2aWNlJ3MgbGlmZXRpbWUuCgpU aGlzIG1pcnJvcnMgdGhlIHBjaTo6QmFyPCdib3VuZCwgU0laRT4gZGVzaWduIGFuZCBlbmFibGVz IGRyaXZlcnMgdG8KaG9sZCBJL08gbWVtb3J5IG1hcHBpbmdzIGRpcmVjdGx5IGluIHRoZWlyIEhS VCBwcml2YXRlIGRhdGEsIHRpZWQgdG8gdGhlCmRldmljZSBsaWZldGltZS4KCklvUmVxdWVzdDo6 aW9tYXBfKiBtZXRob2RzIG5vdyByZXR1cm4gdGhlIG1hcHBpbmcgZGlyZWN0bHkgaW5zdGVhZCBv Zgp3cmFwcGluZyBpdCBpbiBEZXZyZXMuIENhbGxlcnMgdGhhdCBuZWVkIGRldmljZS1tYW5hZ2Vk IHJldm9jYXRpb24gY2FuCmNhbGwgdGhlIG5ldyBpbnRvX2RldnJlcygpIG1ldGhvZC4KCkFja2Vk LWJ5OiBVd2UgS2xlaW5lLUvDtm5pZyA8dWtsZWluZWtAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1i eTogRGFuaWxvIEtydW1tcmljaCA8ZGFrckBrZXJuZWwub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS90eXIvZHJpdmVyLnJzIHwgICA0ICstCiBkcml2ZXJzL3B3bS9wd21fdGgxNTIwLnJzICAgICB8 ICAgNCArLQogcnVzdC9rZXJuZWwvaW8vbWVtLnJzICAgICAgICAgfCAxMTUgKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA2MiBpbnNlcnRpb25zKCsp LCA2MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHlyL2RyaXZl ci5ycyBiL2RyaXZlcnMvZ3B1L2RybS90eXIvZHJpdmVyLnJzCmluZGV4IDk2ZDgzNjA1ZTRiOS4u Mjk1YTYyN2RlMmIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHlyL2RyaXZlci5ycwor KysgYi9kcml2ZXJzL2dwdS9kcm0vdHlyL2RyaXZlci5ycwpAQCAtMzcsNyArMzcsNyBAQAogICAg IHJlZ3MsIC8vCiB9OwogCi1wdWIoY3JhdGUpIHR5cGUgSW9NZW0gPSBrZXJuZWw6OmlvOjptZW06 OklvTWVtPFNaXzJNPjsKK3B1YihjcmF0ZSkgdHlwZSBJb01lbSA9IGtlcm5lbDo6aW86Om1lbTo6 SW9NZW08J3N0YXRpYywgU1pfMk0+OwogCiBwdWIoY3JhdGUpIHN0cnVjdCBUeXJEcm1Ecml2ZXI7 CiAKQEAgLTEwOSw3ICsxMDksNyBAQCBmbiBwcm9iZSgKICAgICAgICAgbGV0IHNyYW1fcmVndWxh dG9yID0gUmVndWxhdG9yOjo8cmVndWxhdG9yOjpFbmFibGVkPjo6Z2V0KHBkZXYuYXNfcmVmKCks IGMic3JhbSIpPzsKIAogICAgICAgICBsZXQgcmVxdWVzdCA9IHBkZXYuaW9fcmVxdWVzdF9ieV9p bmRleCgwKS5va19vcihFTk9ERVYpPzsKLSAgICAgICAgbGV0IGlvbWVtID0gQXJjOjpwaW5faW5p dChyZXF1ZXN0LmlvbWFwX3NpemVkOjo8U1pfMk0+KCksIEdGUF9LRVJORUwpPzsKKyAgICAgICAg bGV0IGlvbWVtID0gQXJjOjpuZXcocmVxdWVzdC5pb21hcF9zaXplZDo6PFNaXzJNPigpPy5pbnRv X2RldnJlcygpPywgR0ZQX0tFUk5FTCk/OwogCiAgICAgICAgIGlzc3VlX3NvZnRfcmVzZXQocGRl di5hc19yZWYoKSwgJmlvbWVtKT87CiAgICAgICAgIGdwdTo6bDJfcG93ZXJfb24ocGRldi5hc19y ZWYoKSwgJmlvbWVtKT87CmRpZmYgLS1naXQgYS9kcml2ZXJzL3B3bS9wd21fdGgxNTIwLnJzIGIv ZHJpdmVycy9wd20vcHdtX3RoMTUyMC5ycwppbmRleCBhNzgzMWI0ZWJlMDAuLjNkZWIzOWQ4ZTBm YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wd20vcHdtX3RoMTUyMC5ycworKysgYi9kcml2ZXJzL3B3 bS9wd21fdGgxNTIwLnJzCkBAIC05Miw3ICs5Miw3IEBAIHN0cnVjdCBUaDE1MjBXZkh3IHsKICNb cGluX2RhdGEoUGlubmVkRHJvcCldCiBzdHJ1Y3QgVGgxNTIwUHdtRHJpdmVyRGF0YSB7CiAgICAg I1twaW5dCi0gICAgaW9tZW06IGRldnJlczo6RGV2cmVzPElvTWVtPFRIMTUyMF9QV01fUkVHX1NJ WkU+PiwKKyAgICBpb21lbTogZGV2cmVzOjpEZXZyZXM8SW9NZW08J3N0YXRpYywgVEgxNTIwX1BX TV9SRUdfU0laRT4+LAogICAgIGNsazogQ2xrLAogfQogCkBAIC0zNTEsNyArMzUxLDcgQEAgZm4g cHJvYmUoCiAgICAgICAgICAgICBkZXYsCiAgICAgICAgICAgICBUSDE1MjBfTUFYX1BXTV9OVU0s CiAgICAgICAgICAgICB0cnlfcGluX2luaXQhKFRoMTUyMFB3bURyaXZlckRhdGEgewotICAgICAg ICAgICAgICAgIGlvbWVtIDwtIHJlcXVlc3QuaW9tYXBfc2l6ZWQ6OjxUSDE1MjBfUFdNX1JFR19T SVpFPigpLAorICAgICAgICAgICAgICAgIGlvbWVtIDwtIHJlcXVlc3QuaW9tYXBfc2l6ZWQ6OjxU SDE1MjBfUFdNX1JFR19TSVpFPigpPy5pbnRvX2RldnJlcygpLAogICAgICAgICAgICAgICAgIGNs ayA8LSBjbGssCiAgICAgICAgICAgICB9KSwKICAgICAgICAgKT87CmRpZmYgLS1naXQgYS9ydXN0 L2tlcm5lbC9pby9tZW0ucnMgYi9ydXN0L2tlcm5lbC9pby9tZW0ucnMKaW5kZXggZmQ1MjkyZGY1 ODcwLi5hNGNiMTJlZTcwZDMgMTAwNjQ0Ci0tLSBhL3J1c3Qva2VybmVsL2lvL21lbS5ycworKysg Yi9ydXN0L2tlcm5lbC9pby9tZW0ucnMKQEAgLTIzLDE5ICsyMywxOSBAQAogfTsKIAogLy8vIEFu IElPIHJlcXVlc3QgZm9yIGEgc3BlY2lmaWMgZGV2aWNlIGFuZCByZXNvdXJjZS4KLXB1YiBzdHJ1 Y3QgSW9SZXF1ZXN0PCdhPiB7Ci0gICAgZGV2aWNlOiAmJ2EgRGV2aWNlPEJvdW5kPiwKLSAgICBy ZXNvdXJjZTogJidhIFJlc291cmNlLAorcHViIHN0cnVjdCBJb1JlcXVlc3Q8J2JvdW5kPiB7Cisg ICAgZGV2aWNlOiAmJ2JvdW5kIERldmljZTxCb3VuZD4sCisgICAgcmVzb3VyY2U6ICYnYm91bmQg UmVzb3VyY2UsCiB9CiAKLWltcGw8J2E+IElvUmVxdWVzdDwnYT4geworaW1wbDwnYm91bmQ+IElv UmVxdWVzdDwnYm91bmQ+IHsKICAgICAvLy8gQ3JlYXRlcyBhIG5ldyBbYElvUmVxdWVzdGBdIGlu c3RhbmNlLgogICAgIC8vLwogICAgIC8vLyAjIFNhZmV0eQogICAgIC8vLwogICAgIC8vLyBDYWxs ZXJzIG11c3QgZW5zdXJlIHRoYXQgYHJlc291cmNlYCBpcyB2YWxpZCBmb3IgYGRldmljZWAgZHVy aW5nIHRoZQotICAgIC8vLyBsaWZldGltZSBgJ2FgLgotICAgIHB1YihjcmF0ZSkgdW5zYWZlIGZu IG5ldyhkZXZpY2U6ICYnYSBEZXZpY2U8Qm91bmQ+LCByZXNvdXJjZTogJidhIFJlc291cmNlKSAt PiBTZWxmIHsKKyAgICAvLy8gbGlmZXRpbWUgYCdib3VuZGAuCisgICAgcHViKGNyYXRlKSB1bnNh ZmUgZm4gbmV3KGRldmljZTogJidib3VuZCBEZXZpY2U8Qm91bmQ+LCByZXNvdXJjZTogJidib3Vu ZCBSZXNvdXJjZSkgLT4gU2VsZiB7CiAgICAgICAgIElvUmVxdWVzdCB7IGRldmljZSwgcmVzb3Vy Y2UgfQogICAgIH0KIApAQCAtNzMsMjIgKzczLDE5IEBAIHB1YihjcmF0ZSkgdW5zYWZlIGZuIG5l dyhkZXZpY2U6ICYnYSBEZXZpY2U8Qm91bmQ+LCByZXNvdXJjZTogJidhIFJlc291cmNlKSAtPiBT CiAgICAgLy8vICAgICAgIC8vCiAgICAgLy8vICAgICAgIC8vIE5vIHJ1bnRpbWUgY2hlY2tzIHdp bGwgYXBwbHkgd2hlbiByZWFkaW5nIGFuZCB3cml0aW5nLgogICAgIC8vLyAgICAgICBsZXQgcmVx dWVzdCA9IHBkZXYuaW9fcmVxdWVzdF9ieV9pbmRleCgwKS5va19vcihFTk9ERVYpPzsKLSAgICAv Ly8gICAgICAgbGV0IGlvbWVtID0gcmVxdWVzdC5pb21hcF9zaXplZDo6PDQyPigpOwotICAgIC8v LyAgICAgICBsZXQgaW9tZW0gPSBLQm94OjpwaW5faW5pdChpb21lbSwgR0ZQX0tFUk5FTCk/Owot ICAgIC8vLwotICAgIC8vLyAgICAgICBsZXQgaW8gPSBpb21lbS5hY2Nlc3MocGRldi5hc19yZWYo KSk/OworICAgIC8vLyAgICAgICBsZXQgaW9tZW0gPSByZXF1ZXN0LmlvbWFwX3NpemVkOjo8NDI+ KCk/OwogICAgIC8vLwogICAgIC8vLyAgICAgICAvLyBSZWFkIGFuZCB3cml0ZSBhIDMyLWJpdCB2 YWx1ZSBhdCBgb2Zmc2V0YC4KLSAgICAvLy8gICAgICAgbGV0IGRhdGEgPSBpby5yZWFkMzIob2Zm c2V0KTsKKyAgICAvLy8gICAgICAgbGV0IGRhdGEgPSBpb21lbS5yZWFkMzIob2Zmc2V0KTsKICAg ICAvLy8KLSAgICAvLy8gICAgICAgaW8ud3JpdGUzMihkYXRhLCBvZmZzZXQpOworICAgIC8vLyAg ICAgICBpb21lbS53cml0ZTMyKGRhdGEsIG9mZnNldCk7CiAgICAgLy8vCiAgICAgLy8vICAgICAg ICMgT2soU2FtcGxlRHJpdmVyKQogICAgIC8vLyAgICAgfQogICAgIC8vLyB9CiAgICAgLy8vIGBg YAotICAgIHB1YiBmbiBpb21hcF9zaXplZDxjb25zdCBTSVpFOiB1c2l6ZT4oc2VsZikgLT4gaW1w bCBQaW5Jbml0PERldnJlczxJb01lbTxTSVpFPj4sIEVycm9yPiArICdhIHsKLSAgICAgICAgSW9N ZW06Om5ldyhzZWxmKQorICAgIHB1YiBmbiBpb21hcF9zaXplZDxjb25zdCBTSVpFOiB1c2l6ZT4o c2VsZikgLT4gUmVzdWx0PElvTWVtPCdib3VuZCwgU0laRT4+IHsKKyAgICAgICAgSW9NZW06Omlv cmVtYXAoc2VsZi5kZXZpY2UsIHNlbGYucmVzb3VyY2UpCiAgICAgfQogCiAgICAgLy8vIFNhbWUg YXMgW2BTZWxmOjppb21hcF9zaXplZGBdIGJ1dCB3aXRoIGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gdGhl CkBAIC05NywxMCArOTQsOCBAQCBwdWIgZm4gaW9tYXBfc2l6ZWQ8Y29uc3QgU0laRTogdXNpemU+ KHNlbGYpIC0+IGltcGwgUGluSW5pdDxEZXZyZXM8SW9NZW08U0laRT4+LAogICAgIC8vLyBUaGlz IHVzZXMgdGhlIFtgaW9yZW1hcCgpYF0gQyBBUEkuCiAgICAgLy8vCiAgICAgLy8vIFtgaW9yZW1h cCgpYF06IGh0dHBzOi8vZG9jcy5rZXJuZWwub3JnL2RyaXZlci1hcGkvZGV2aWNlLWlvLmh0bWwj Z2V0dGluZy1hY2Nlc3MtdG8tdGhlLWRldmljZQotICAgIHB1YiBmbiBpb21hcF9leGNsdXNpdmVf c2l6ZWQ8Y29uc3QgU0laRTogdXNpemU+KAotICAgICAgICBzZWxmLAotICAgICkgLT4gaW1wbCBQ aW5Jbml0PERldnJlczxFeGNsdXNpdmVJb01lbTxTSVpFPj4sIEVycm9yPiArICdhIHsKLSAgICAg ICAgRXhjbHVzaXZlSW9NZW06Om5ldyhzZWxmKQorICAgIHB1YiBmbiBpb21hcF9leGNsdXNpdmVf c2l6ZWQ8Y29uc3QgU0laRTogdXNpemU+KHNlbGYpIC0+IFJlc3VsdDxFeGNsdXNpdmVJb01lbTwn Ym91bmQsIFNJWkU+PiB7CisgICAgICAgIEV4Y2x1c2l2ZUlvTWVtOjppb3JlbWFwKHNlbGYuZGV2 aWNlLCBzZWxmLnJlc291cmNlKQogICAgIH0KIAogICAgIC8vLyBNYXBzIGFuIFtgSW9SZXF1ZXN0 YF0gd2hlcmUgdGhlIHNpemUgaXMgbm90IGtub3duIGF0IGNvbXBpbGUgdGltZSwKQEAgLTEzOCwy NyArMTMzLDI0IEBAIHB1YiBmbiBpb21hcF9leGNsdXNpdmVfc2l6ZWQ8Y29uc3QgU0laRTogdXNp emU+KAogICAgIC8vLyAgICAgICAvLyBmYW1pbHkgb2YgZnVuY3Rpb25zIHNob3VsZCBiZSB1c2Vk LCBsZWFkaW5nIHRvIHJ1bnRpbWUgY2hlY2tzIG9uIGV2ZXJ5CiAgICAgLy8vICAgICAgIC8vIGFj Y2Vzcy4KICAgICAvLy8gICAgICAgbGV0IHJlcXVlc3QgPSBwZGV2LmlvX3JlcXVlc3RfYnlfaW5k ZXgoMCkub2tfb3IoRU5PREVWKT87Ci0gICAgLy8vICAgICAgIGxldCBpb21lbSA9IHJlcXVlc3Qu aW9tYXAoKTsKLSAgICAvLy8gICAgICAgbGV0IGlvbWVtID0gS0JveDo6cGluX2luaXQoaW9tZW0s IEdGUF9LRVJORUwpPzsKLSAgICAvLy8KLSAgICAvLy8gICAgICAgbGV0IGlvID0gaW9tZW0uYWNj ZXNzKHBkZXYuYXNfcmVmKCkpPzsKKyAgICAvLy8gICAgICAgbGV0IGlvbWVtID0gcmVxdWVzdC5p b21hcCgpPzsKICAgICAvLy8KLSAgICAvLy8gICAgICAgbGV0IGRhdGEgPSBpby50cnlfcmVhZDMy KG9mZnNldCk/OworICAgIC8vLyAgICAgICBsZXQgZGF0YSA9IGlvbWVtLnRyeV9yZWFkMzIob2Zm c2V0KT87CiAgICAgLy8vCi0gICAgLy8vICAgICAgIGlvLnRyeV93cml0ZTMyKGRhdGEsIG9mZnNl dCk/OworICAgIC8vLyAgICAgICBpb21lbS50cnlfd3JpdGUzMihkYXRhLCBvZmZzZXQpPzsKICAg ICAvLy8KICAgICAvLy8gICAgICAgIyBPayhTYW1wbGVEcml2ZXIpCiAgICAgLy8vICAgICB9CiAg ICAgLy8vIH0KICAgICAvLy8gYGBgCi0gICAgcHViIGZuIGlvbWFwKHNlbGYpIC0+IGltcGwgUGlu SW5pdDxEZXZyZXM8SW9NZW08MD4+LCBFcnJvcj4gKyAnYSB7Ci0gICAgICAgIFNlbGY6OmlvbWFw X3NpemVkOjo8MD4oc2VsZikKKyAgICBwdWIgZm4gaW9tYXAoc2VsZikgLT4gUmVzdWx0PElvTWVt PCdib3VuZD4+IHsKKyAgICAgICAgc2VsZi5pb21hcF9zaXplZDo6PDA+KCkKICAgICB9CiAKICAg ICAvLy8gU2FtZSBhcyBbYFNlbGY6OmlvbWFwYF0gYnV0IHdpdGggZXhjbHVzaXZlIGFjY2VzcyB0 byB0aGUgdW5kZXJseWluZwogICAgIC8vLyByZWdpb24uCi0gICAgcHViIGZuIGlvbWFwX2V4Y2x1 c2l2ZShzZWxmKSAtPiBpbXBsIFBpbkluaXQ8RGV2cmVzPEV4Y2x1c2l2ZUlvTWVtPDA+PiwgRXJy b3I+ICsgJ2EgewotICAgICAgICBTZWxmOjppb21hcF9leGNsdXNpdmVfc2l6ZWQ6OjwwPihzZWxm KQorICAgIHB1YiBmbiBpb21hcF9leGNsdXNpdmUoc2VsZikgLT4gUmVzdWx0PEV4Y2x1c2l2ZUlv TWVtPCdib3VuZCwgMD4+IHsKKyAgICAgICAgc2VsZi5pb21hcF9leGNsdXNpdmVfc2l6ZWQ6Ojww PigpCiAgICAgfQogfQogCkBAIC0xNjcsOSArMTU5LDkgQEAgcHViIGZuIGlvbWFwX2V4Y2x1c2l2 ZShzZWxmKSAtPiBpbXBsIFBpbkluaXQ8RGV2cmVzPEV4Y2x1c2l2ZUlvTWVtPDA+PiwgRXJyb3I+ ICsKIC8vLyAjIEludmFyaWFudHMKIC8vLwogLy8vIC0gW2BFeGNsdXNpdmVJb01lbWBdIGhhcyBl eGNsdXNpdmUgYWNjZXNzIHRvIHRoZSB1bmRlcmx5aW5nIFtgSW9NZW1gXS4KLXB1YiBzdHJ1Y3Qg RXhjbHVzaXZlSW9NZW08Y29uc3QgU0laRTogdXNpemU+IHsKK3B1YiBzdHJ1Y3QgRXhjbHVzaXZl SW9NZW08J2JvdW5kLCBjb25zdCBTSVpFOiB1c2l6ZT4gewogICAgIC8vLyBUaGUgdW5kZXJseWlu ZyBgSW9NZW1gIGluc3RhbmNlLgotICAgIGlvbWVtOiBJb01lbTxTSVpFPiwKKyAgICBpb21lbTog SW9NZW08J2JvdW5kLCBTSVpFPiwKIAogICAgIC8vLyBUaGUgcmVnaW9uIGFic3RyYWN0aW9uLiBU aGlzIHJlcHJlc2VudHMgZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUKICAgICAvLy8gcmFuZ2UgcmVw cmVzZW50ZWQgYnkgdGhlIHVuZGVybHlpbmcgYGlvbWVtYC4KQEAgLTE3OCw5ICsxNzAsOSBAQCBw dWIgc3RydWN0IEV4Y2x1c2l2ZUlvTWVtPGNvbnN0IFNJWkU6IHVzaXplPiB7CiAgICAgX3JlZ2lv bjogUmVnaW9uLAogfQogCi1pbXBsPGNvbnN0IFNJWkU6IHVzaXplPiBFeGNsdXNpdmVJb01lbTxT SVpFPiB7CitpbXBsPCdib3VuZCwgY29uc3QgU0laRTogdXNpemU+IEV4Y2x1c2l2ZUlvTWVtPCdi b3VuZCwgU0laRT4gewogICAgIC8vLyBDcmVhdGVzIGEgbmV3IGBFeGNsdXNpdmVJb01lbWAgaW5z dGFuY2UuCi0gICAgZm4gaW9yZW1hcChyZXNvdXJjZTogJlJlc291cmNlKSAtPiBSZXN1bHQ8U2Vs Zj4geworICAgIGZuIGlvcmVtYXAoZGV2OiAmJ2JvdW5kIERldmljZTxCb3VuZD4sIHJlc291cmNl OiAmUmVzb3VyY2UpIC0+IFJlc3VsdDxTZWxmPiB7CiAgICAgICAgIGxldCBzdGFydCA9IHJlc291 cmNlLnN0YXJ0KCk7CiAgICAgICAgIGxldCBzaXplID0gcmVzb3VyY2Uuc2l6ZSgpOwogICAgICAg ICBsZXQgbmFtZSA9IHJlc291cmNlLm5hbWUoKS51bndyYXBfb3JfZGVmYXVsdCgpOwpAQCAtMTk0 LDI2ICsxODYsMjkgQEAgZm4gaW9yZW1hcChyZXNvdXJjZTogJlJlc291cmNlKSAtPiBSZXN1bHQ8 U2VsZj4gewogICAgICAgICAgICAgKQogICAgICAgICAgICAgLm9rX29yKEVCVVNZKT87CiAKLSAg ICAgICAgbGV0IGlvbWVtID0gSW9NZW06OmlvcmVtYXAocmVzb3VyY2UpPzsKKyAgICAgICAgbGV0 IGlvbWVtID0gSW9NZW06OmlvcmVtYXAoZGV2LCByZXNvdXJjZSk/OwogCi0gICAgICAgIGxldCBp b21lbSA9IEV4Y2x1c2l2ZUlvTWVtIHsKKyAgICAgICAgT2soRXhjbHVzaXZlSW9NZW0gewogICAg ICAgICAgICAgaW9tZW0sCiAgICAgICAgICAgICBfcmVnaW9uOiByZWdpb24sCi0gICAgICAgIH07 Ci0KLSAgICAgICAgT2soaW9tZW0pCisgICAgICAgIH0pCiAgICAgfQogCi0gICAgLy8vIENyZWF0 ZXMgYSBuZXcgYEV4Y2x1c2l2ZUlvTWVtYCBpbnN0YW5jZSBmcm9tIGEgcHJldmlvdXNseSBhY3F1 aXJlZCBbYElvUmVxdWVzdGBdLgotICAgIHB1YiBmbiBuZXc8J2E+KGlvX3JlcXVlc3Q6IElvUmVx dWVzdDwnYT4pIC0+IGltcGwgUGluSW5pdDxEZXZyZXM8U2VsZj4sIEVycm9yPiArICdhIHsKLSAg ICAgICAgbGV0IGRldiA9IGlvX3JlcXVlc3QuZGV2aWNlOwotICAgICAgICBsZXQgcmVzID0gaW9f cmVxdWVzdC5yZXNvdXJjZTsKLQotICAgICAgICBEZXZyZXM6Om5ldyhkZXYsIFNlbGY6OmlvcmVt YXAocmVzKSkKKyAgICAvLy8gQ29uc3VtZSB0aGUgYEV4Y2x1c2l2ZUlvTWVtYCBhbmQgcmVnaXN0 ZXIgaXQgYXMgYSBkZXZpY2UtbWFuYWdlZCByZXNvdXJjZS4KKyAgICAvLy8KKyAgICAvLy8gVGhl IHJldHVybmVkIGBEZXZyZXM8RXhjbHVzaXZlSW9NZW08J3N0YXRpYywgU0laRT4+YCBjYW4gb3V0 bGl2ZSB0aGUgb3JpZ2luYWwgbGlmZXRpbWUKKyAgICAvLy8gYCdib3VuZGAuIEFjY2VzcyB0byB0 aGUgSS9PIG1lbW9yeSBpcyByZXZva2VkIHdoZW4gdGhlIGRldmljZSBpcyB1bmJvdW5kLgorICAg IHB1YiBmbiBpbnRvX2RldnJlcyhzZWxmKSAtPiBSZXN1bHQ8RGV2cmVzPEV4Y2x1c2l2ZUlvTWVt PCdzdGF0aWMsIFNJWkU+Pj4geworICAgICAgICAvLyBTQUZFVFk6IENhc3RpbmcgdG8gYCdzdGF0 aWNgIGlzIHNvdW5kIGJlY2F1c2UgYERldnJlc2AgZ3VhcmFudGVlcyB0aGUKKyAgICAgICAgLy8g YEV4Y2x1c2l2ZUlvTWVtYCBkb2VzIG5vdCBhY3R1YWxseSBvdXRsaXZlIHRoZSBkZXZpY2UgLS0g YWNjZXNzIGlzIHJldm9rZWQgYW5kIHRoZQorICAgICAgICAvLyByZXNvdXJjZSBpcyByZWxlYXNl ZCB3aGVuIHRoZSBkZXZpY2UgaXMgdW5ib3VuZC4KKyAgICAgICAgbGV0IGlvbWVtOiBFeGNsdXNp dmVJb01lbTwnc3RhdGljLCBTSVpFPiA9IHVuc2FmZSB7IGNvcmU6Om1lbTo6dHJhbnNtdXRlKHNl bGYpIH07CisgICAgICAgIGxldCBkZXYgPSBpb21lbS5pb21lbS5kZXY7CisgICAgICAgIERldnJl czo6bmV3KGRldiwgaW9tZW0pCiAgICAgfQogfQogCi1pbXBsPGNvbnN0IFNJWkU6IHVzaXplPiBE ZXJlZiBmb3IgRXhjbHVzaXZlSW9NZW08U0laRT4geworaW1wbDxjb25zdCBTSVpFOiB1c2l6ZT4g RGVyZWYgZm9yIEV4Y2x1c2l2ZUlvTWVtPCdfLCBTSVpFPiB7CiAgICAgdHlwZSBUYXJnZXQgPSBN bWlvPFNJWkU+OwogCiAgICAgZm4gZGVyZWYoJnNlbGYpIC0+ICZTZWxmOjpUYXJnZXQgewpAQCAt MjMwLDEyICsyMjUsMTMgQEAgZm4gZGVyZWYoJnNlbGYpIC0+ICZTZWxmOjpUYXJnZXQgewogLy8v CiAvLy8gW2BJb01lbWBdIGFsd2F5cyBob2xkcyBhbiBbYE1taW9SYXdgXSBpbnN0YW5jZSB0aGF0 IGhvbGRzIGEgdmFsaWQgcG9pbnRlciB0byB0aGUKIC8vLyBzdGFydCBvZiB0aGUgSS9PIG1lbW9y eSBtYXBwZWQgcmVnaW9uLgotcHViIHN0cnVjdCBJb01lbTxjb25zdCBTSVpFOiB1c2l6ZSA9IDA+ IHsKK3B1YiBzdHJ1Y3QgSW9NZW08J2JvdW5kLCBjb25zdCBTSVpFOiB1c2l6ZSA9IDA+IHsKKyAg ICBkZXY6ICYnYm91bmQgRGV2aWNlPEJvdW5kPiwKICAgICBpbzogTW1pb1JhdzxTSVpFPiwKIH0K IAotaW1wbDxjb25zdCBTSVpFOiB1c2l6ZT4gSW9NZW08U0laRT4gewotICAgIGZuIGlvcmVtYXAo cmVzb3VyY2U6ICZSZXNvdXJjZSkgLT4gUmVzdWx0PFNlbGY+IHsKK2ltcGw8J2JvdW5kLCBjb25z dCBTSVpFOiB1c2l6ZT4gSW9NZW08J2JvdW5kLCBTSVpFPiB7CisgICAgZm4gaW9yZW1hcChkZXY6 ICYnYm91bmQgRGV2aWNlPEJvdW5kPiwgcmVzb3VyY2U6ICZSZXNvdXJjZSkgLT4gUmVzdWx0PFNl bGY+IHsKICAgICAgICAgLy8gTm90ZTogU29tZSBpb3JlbWFwKCkgaW1wbGVtZW50YXRpb25zIHVz ZSB0eXBlcyB0aGF0IGRlcGVuZCBvbiB0aGUgQ1BVCiAgICAgICAgIC8vIHdvcmQgd2lkdGggcmF0 aGVyIHRoYW4gdGhlIGJ1cyBhZGRyZXNzIHdpZHRoLgogICAgICAgICAvLwpAQCAtMjY3LDI4ICsy NjMsMzMgQEAgZm4gaW9yZW1hcChyZXNvdXJjZTogJlJlc291cmNlKSAtPiBSZXN1bHQ8U2VsZj4g ewogICAgICAgICB9CiAKICAgICAgICAgbGV0IGlvID0gTW1pb1Jhdzo6bmV3KGFkZHIgYXMgdXNp emUsIHNpemUpPzsKLSAgICAgICAgbGV0IGlvID0gSW9NZW0geyBpbyB9OwogCi0gICAgICAgIE9r KGlvKQorICAgICAgICBPayhJb01lbSB7IGRldiwgaW8gfSkKICAgICB9CiAKLSAgICAvLy8gQ3Jl YXRlcyBhIG5ldyBgSW9NZW1gIGluc3RhbmNlIGZyb20gYSBwcmV2aW91c2x5IGFjcXVpcmVkIFtg SW9SZXF1ZXN0YF0uCi0gICAgcHViIGZuIG5ldzwnYT4oaW9fcmVxdWVzdDogSW9SZXF1ZXN0PCdh PikgLT4gaW1wbCBQaW5Jbml0PERldnJlczxTZWxmPiwgRXJyb3I+ICsgJ2EgewotICAgICAgICBs ZXQgZGV2ID0gaW9fcmVxdWVzdC5kZXZpY2U7Ci0gICAgICAgIGxldCByZXMgPSBpb19yZXF1ZXN0 LnJlc291cmNlOwotCi0gICAgICAgIERldnJlczo6bmV3KGRldiwgU2VsZjo6aW9yZW1hcChyZXMp KQorICAgIC8vLyBDb25zdW1lIHRoZSBgSW9NZW1gIGFuZCByZWdpc3RlciBpdCBhcyBhIGRldmlj ZS1tYW5hZ2VkIHJlc291cmNlLgorICAgIC8vLworICAgIC8vLyBUaGUgcmV0dXJuZWQgYERldnJl czxJb01lbTwnc3RhdGljLCBTSVpFPj5gIGNhbiBvdXRsaXZlIHRoZSBvcmlnaW5hbAorICAgIC8v LyBsaWZldGltZSBgJ2JvdW5kYC4gQWNjZXNzIHRvIHRoZSBJL08gbWVtb3J5IGlzIHJldm9rZWQg d2hlbiB0aGUgZGV2aWNlCisgICAgLy8vIGlzIHVuYm91bmQuCisgICAgcHViIGZuIGludG9fZGV2 cmVzKHNlbGYpIC0+IFJlc3VsdDxEZXZyZXM8SW9NZW08J3N0YXRpYywgU0laRT4+PiB7CisgICAg ICAgIC8vIFNBRkVUWTogQ2FzdGluZyB0byBgJ3N0YXRpY2AgaXMgc291bmQgYmVjYXVzZSBgRGV2 cmVzYCBndWFyYW50ZWVzIHRoZSBgSW9NZW1gIGRvZXMgbm90CisgICAgICAgIC8vIGFjdHVhbGx5 IG91dGxpdmUgdGhlIGRldmljZSAtLSBhY2Nlc3MgaXMgcmV2b2tlZCBhbmQgdGhlIHJlc291cmNl IGlzIHJlbGVhc2VkIHdoZW4gdGhlCisgICAgICAgIC8vIGRldmljZSBpcyB1bmJvdW5kLgorICAg ICAgICBsZXQgaW9tZW06IElvTWVtPCdzdGF0aWMsIFNJWkU+ID0gdW5zYWZlIHsgY29yZTo6bWVt Ojp0cmFuc211dGUoc2VsZikgfTsKKyAgICAgICAgbGV0IGRldiA9IGlvbWVtLmRldjsKKyAgICAg ICAgRGV2cmVzOjpuZXcoZGV2LCBpb21lbSkKICAgICB9CiB9CiAKLWltcGw8Y29uc3QgU0laRTog dXNpemU+IERyb3AgZm9yIElvTWVtPFNJWkU+IHsKK2ltcGw8Y29uc3QgU0laRTogdXNpemU+IERy b3AgZm9yIElvTWVtPCdfLCBTSVpFPiB7CiAgICAgZm4gZHJvcCgmbXV0IHNlbGYpIHsKICAgICAg ICAgLy8gU0FGRVRZOiBTYWZlIGFzIGJ5IHRoZSBpbnZhcmlhbnQgb2YgYElvYC4KICAgICAgICAg dW5zYWZlIHsgYmluZGluZ3M6OmlvdW5tYXAoc2VsZi5pby5hZGRyKCkgYXMgKm11dCBjX3ZvaWQp IH0KICAgICB9CiB9CiAKLWltcGw8Y29uc3QgU0laRTogdXNpemU+IERlcmVmIGZvciBJb01lbTxT SVpFPiB7CitpbXBsPGNvbnN0IFNJWkU6IHVzaXplPiBEZXJlZiBmb3IgSW9NZW08J18sIFNJWkU+ IHsKICAgICB0eXBlIFRhcmdldCA9IE1taW88U0laRT47CiAKICAgICBmbiBkZXJlZigmc2VsZikg LT4gJlNlbGY6OlRhcmdldCB7Ci0tIAoyLjU0LjAKCg==