From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.groups.io with SMTP id smtpd.web09.3619.1608154106438060780 for ; Wed, 16 Dec 2020 13:28:26 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=fS5xSgDp; spf=pass (domain: redhat.com, ip: 63.128.21.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1608154105; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HyaFLUrw0jJHVa1hhKggcQsCeYFXiWvYS9vOtkQv+TQ=; b=fS5xSgDpdzPync/AKaORHg+4+aJZo9SibKNzrMK8LucGIZmI9i9qAYFpTAuXlWwt9Ae2eS K0pmwc5PKMUswBonSoiqZoaPvP8cADwAZYV8ImDIaDREX3BtZr+p6LfWXSl3AYM0PEt1wT pv/Mb6pol45X0NAYLTCfPV5clszlqA8= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-202--ARxxNsbPy-XsozAXwhnwA-1; Wed, 16 Dec 2020 16:28:21 -0500 X-MC-Unique: -ARxxNsbPy-XsozAXwhnwA-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B6B6251080; Wed, 16 Dec 2020 21:28:20 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-114-152.ams2.redhat.com [10.36.114.152]) by smtp.corp.redhat.com (Postfix) with ESMTP id 30D09369A; Wed, 16 Dec 2020 21:28:16 +0000 (UTC) From: "Laszlo Ersek" To: devel@edk2.groups.io, virtio-fs@redhat.com, lersek@redhat.com Cc: Ard Biesheuvel , Jordan Justen , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [edk2 PATCH 08/48] OvmfPkg/VirtioFsDxe: submit the FUSE_INIT request to the device Date: Wed, 16 Dec 2020 22:10:45 +0100 Message-Id: <20201216211125.19496-9-lersek@redhat.com> In-Reply-To: <20201216211125.19496-1-lersek@redhat.com> References: <20201216211125.19496-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=lersek@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 U3VibWl0IHRoZSBGVVNFX0lOSVQgcmVxdWVzdCB0byB0aGUgVmlydGlvIEZpbGVzeXN0ZW0gZGV2 aWNlLCBmb3Igc3RhcnRpbmcKdGhlIEZVU0Ugc2Vzc2lvbi4KClRoZSBGVVNFX0lOSVQgcmVxdWVz dCBpcyBsb2dnZWQgYnkgdGhlIHZpcnRpby1mcyBkYWVtb24sIHdpdGggdGhpcyBwYXRjaAphcHBs aWVkLCB3aGVuIChmb3IgZXhhbXBsZSkgdXNpbmcgdGhlICJDT05ORUNUIiBVRUZJIHNoZWxsIGNv bW1hbmQuCgpDYzogQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGFybS5jb20+CkNjOiBK b3JkYW4gSnVzdGVuIDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPgpDYzogUGhpbGlwcGUgTWF0 aGlldS1EYXVkw6kgPHBoaWxtZEByZWRoYXQuY29tPgpSZWY6IGh0dHBzOi8vYnVnemlsbGEudGlh bm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA5NwpTaWduZWQtb2ZmLWJ5OiBMYXN6bG8gRXJz ZWsgPGxlcnNla0ByZWRoYXQuY29tPgotLS0KIE92bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5k YXJkL1ZpcnRpb0ZzLmggfCAgMzEgKysrKysKIE92bWZQa2cvVmlydGlvRnNEeGUvVmlydGlvRnNE eGUuaW5mICAgICAgICAgfCAgIDEgKwogT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5o ICAgICAgICAgICB8ICAxMyArLQogT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9Ecml2ZXJCaW5kaW5nLmMg ICAgICAgICB8ICAgOCArLQogT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9GdXNlSW5pdC5jICAgICAgICAg ICAgICB8IDEzMiArKysrKysrKysrKysrKysrKysrKwogT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9IZWxw ZXJzLmMgICAgICAgICAgICAgICB8ICAgNSArLQogNiBmaWxlcyBjaGFuZ2VkLCAxODIgaW5zZXJ0 aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Pdm1mUGtnL0luY2x1ZGUvSW5k dXN0cnlTdGFuZGFyZC9WaXJ0aW9Gcy5oIGIvT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRh cmQvVmlydGlvRnMuaAppbmRleCA1MjEyODhiMDNmMWMuLjAwNmUwZjVkZWJjYiAxMDA2NDQKLS0t IGEvT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvVmlydGlvRnMuaAorKysgYi9Pdm1m UGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9WaXJ0aW9Gcy5oCkBAIC03MSwxNiArNzEsMjMg QEAgdHlwZWRlZiBzdHJ1Y3QgewogLy8gb3V0IGF0IGNvbW1pdCAoYzZmZjIxM2ZlNWI4XikgPSBk NzgwOTJlNDkzN2QgKCJmdXNlOiBmaXggcGFnZSBkZXJlZmVyZW5jZQ0KIC8vIGFmdGVyIGZyZWUi LCAyMDIwLTA5LTE4KTsgdGhhdCBpcywgcmlnaHQgYmVmb3JlIGNvbW1pdCBjNmZmMjEzZmU1Yjgg KCJmdXNlOg0KIC8vIGFkZCBzdWJtb3VudCBzdXBwb3J0IHRvIDx1YXBpL2xpbnV4L2Z1c2UuaD4i LCAyMDIwLTA5LTE4KSBpbnRyb2R1Y2VzIEZVU0UNCiAvLyBpbnRlcmZhY2UgdmVyc2lvbiA3LjMy Lg0KIC8vDQogI2RlZmluZSBWSVJUSU9fRlNfRlVTRV9NQUpPUiAgNw0KICNkZWZpbmUgVklSVElP X0ZTX0ZVU0VfTUlOT1IgMzENCiANCisvLw0KKy8vIEZVU0Ugb3BlcmF0aW9uIGNvZGVzLg0KKy8v DQordHlwZWRlZiBlbnVtIHsNCisgIFZpcnRpb0ZzRnVzZU9wSW5pdCAgICAgICAgPSAyNiwNCit9 IFZJUlRJT19GU19GVVNFX09QQ09ERTsNCisNCiAjcHJhZ21hIHBhY2sgKDEpDQogLy8NCiAvLyBS ZXF1ZXN0LXJlc3BvbnNlIGhlYWRlcnMgY29tbW9uIHRvIGFsbCByZXF1ZXN0IHR5cGVzLg0KIC8v DQogdHlwZWRlZiBzdHJ1Y3Qgew0KICAgVUlOVDMyIExlbjsNCiAgIFVJTlQzMiBPcGNvZGU7DQog ICBVSU5UNjQgVW5pcXVlOw0KQEAgLTkxLDExICs5OCwzNSBAQCB0eXBlZGVmIHN0cnVjdCB7CiAg IFVJTlQzMiBQYWRkaW5nOw0KIH0gVklSVElPX0ZTX0ZVU0VfUkVRVUVTVDsNCiANCiB0eXBlZGVm IHN0cnVjdCB7DQogICBVSU5UMzIgTGVuOw0KICAgSU5UMzIgIEVycm9yOw0KICAgVUlOVDY0IFVu aXF1ZTsNCiB9IFZJUlRJT19GU19GVVNFX1JFU1BPTlNFOw0KKw0KKy8vDQorLy8gSGVhZGVycyBm b3IgVmlydGlvRnNGdXNlT3BJbml0Lg0KKy8vDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgVUlOVDMy IE1ham9yOw0KKyAgVUlOVDMyIE1pbm9yOw0KKyAgVUlOVDMyIE1heFJlYWRhaGVhZDsNCisgIFVJ TlQzMiBGbGFnczsNCit9IFZJUlRJT19GU19GVVNFX0lOSVRfUkVRVUVTVDsNCisNCit0eXBlZGVm IHN0cnVjdCB7DQorICBVSU5UMzIgTWFqb3I7DQorICBVSU5UMzIgTWlub3I7DQorICBVSU5UMzIg TWF4UmVhZGFoZWFkOw0KKyAgVUlOVDMyIEZsYWdzOw0KKyAgVUlOVDE2IE1heEJhY2tncm91bmQ7 DQorICBVSU5UMTYgQ29uZ2VzdGlvblRocmVzaG9sZDsNCisgIFVJTlQzMiBNYXhXcml0ZTsNCisg IFVJTlQzMiBUaW1lR3JhbjsNCisgIFVJTlQxNiBNYXhQYWdlczsNCisgIFVJTlQxNiBNYXBBbGln bm1lbnQ7DQorICBVSU5UMzIgVW51c2VkWzhdOw0KK30gVklSVElPX0ZTX0ZVU0VfSU5JVF9SRVNQ T05TRTsNCiAjcHJhZ21hIHBhY2sgKCkNCiANCiAjZW5kaWYgLy8gVklSVElPX0ZTX0hfDQpkaWZm IC0tZ2l0IGEvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5pbmYgYi9Pdm1mUGtnL1Zp cnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmluZgppbmRleCBmNmVlYmRiNmJjN2MuLjhmZGRjNTAzMThm MSAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5pbmYKKysrIGIv T3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5pbmYKQEAgLTc3LDE2ICs3NywxNyBAQCBb RGVmaW5lc10KICAgRU5UUllfUE9JTlQgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFZpcnRp b0ZzRW50cnlQb2ludA0KIA0KIFtQYWNrYWdlc10NCiAgIE1kZVBrZy9NZGVQa2cuZGVjDQogICBP dm1mUGtnL092bWZQa2cuZGVjDQogDQogW1NvdXJjZXNdDQogICBEcml2ZXJCaW5kaW5nLmMNCisg IEZ1c2VJbml0LmMNCiAgIEhlbHBlcnMuYw0KICAgU2ltcGxlRnNPcGVuVm9sdW1lLmMNCiAgIFZp cnRpb0ZzRHhlLmgNCiANCiBbTGlicmFyeUNsYXNzZXNdDQogICBCYXNlTGliDQogICBEZWJ1Z0xp Yg0KICAgTWVtb3J5QWxsb2NhdGlvbkxpYg0KZGlmZiAtLWdpdCBhL092bWZQa2cvVmlydGlvRnNE eGUvVmlydGlvRnNEeGUuaCBiL092bWZQa2cvVmlydGlvRnNEeGUvVmlydGlvRnNEeGUuaAppbmRl eCA3NzJhYjc0M2NjOGUuLmI4ZDQ2NDAxMTg0MyAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9WaXJ0aW9G c0R4ZS9WaXJ0aW9Gc0R4ZS5oCisrKyBiL092bWZQa2cvVmlydGlvRnNEeGUvVmlydGlvRnNEeGUu aApAQCAtMzksMTcgKzM5LDE3IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgLy8gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmaWVsZCAgICAgICAgIGluaXQgZnVuY3Rpb24gICAgICAgaW5pdCBk ZXB0aA0KICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLSAgIC0t LS0tLS0tLS0tLS0tLS0tLSAgLS0tLS0tLS0tLQ0KICAgVUlOVDY0ICAgICAgICAgICAgICAgICAg ICAgICAgICBTaWduYXR1cmU7IC8vIERyaXZlckJpbmRpbmdTdGFydCAgMA0KICAgVklSVElPX0RF VklDRV9QUk9UT0NPTCAgICAgICAgICAqVmlydGlvOyAgIC8vIERyaXZlckJpbmRpbmdTdGFydCAg MA0KICAgVklSVElPX0ZTX0xBQkVMICAgICAgICAgICAgICAgICBMYWJlbDsgICAgIC8vIFZpcnRp b0ZzSW5pdCAgICAgICAgMQ0KICAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgICAgICBRdWV1 ZVNpemU7IC8vIFZpcnRpb0ZzSW5pdCAgICAgICAgMQ0KICAgVlJJTkcgICAgICAgICAgICAgICAg ICAgICAgICAgICBSaW5nOyAgICAgIC8vIFZpcnRpb1JpbmdJbml0ICAgICAgMg0KICAgVk9JRCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqUmluZ01hcDsgIC8vIFZpcnRpb1JpbmdNYXAgICAg ICAgMg0KLSAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0SWQ7IC8vIERy aXZlckJpbmRpbmdTdGFydCAgMA0KKyAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXF1ZXN0SWQ7IC8vIEZ1c2VJbml0U2Vzc2lvbiAgICAgMQ0KICAgRUZJX0VWRU5UICAgICAgICAg ICAgICAgICAgICAgICBFeGl0Qm9vdDsgIC8vIERyaXZlckJpbmRpbmdTdGFydCAgMA0KICAgRUZJ X1NJTVBMRV9GSUxFX1NZU1RFTV9QUk9UT0NPTCBTaW1wbGVGczsgIC8vIERyaXZlckJpbmRpbmdT dGFydCAgMA0KIH0gVklSVElPX0ZTOw0KIA0KICNkZWZpbmUgVklSVElPX0ZTX0ZST01fU0lNUExF X0ZTKFNpbXBsZUZzUmVmZXJlbmNlKSBcDQogICBDUiAoU2ltcGxlRnNSZWZlcmVuY2UsIFZJUlRJ T19GUywgU2ltcGxlRnMsIFZJUlRJT19GU19TSUcpOw0KIA0KIC8vDQpAQCAtMTMzLDMyICsxMzMs NDEgQEAgVmlydGlvRnNTZ0xpc3RzU3VibWl0ICgKICAgSU4gT1VUIFZJUlRJT19GU19TQ0FUVEVS X0dBVEhFUl9MSVNUICpSZXNwb25zZVNnTGlzdCBPUFRJT05BTA0KICAgKTsNCiANCiBFRklfU1RB VFVTDQogVmlydGlvRnNGdXNlTmV3UmVxdWVzdCAoDQogICBJTiBPVVQgVklSVElPX0ZTICAgICAg ICAgICAgICAqVmlydGlvRnMsDQogICAgICBPVVQgVklSVElPX0ZTX0ZVU0VfUkVRVUVTVCAqUmVx dWVzdCwNCiAgIElOICAgICBVSU5UMzIgICAgICAgICAgICAgICAgIFJlcXVlc3RTaXplLA0KLSAg SU4gICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgT3Bjb2RlLA0KKyAgSU4gICAgIFZJUlRJT19G U19GVVNFX09QQ09ERSAgT3Bjb2RlLA0KICAgSU4gICAgIFVJTlQ2NCAgICAgICAgICAgICAgICAg Tm9kZUlkDQogICApOw0KIA0KIEVGSV9TVEFUVVMNCiBWaXJ0aW9Gc0Z1c2VDaGVja1Jlc3BvbnNl ICgNCiAgIElOICBWSVJUSU9fRlNfU0NBVFRFUl9HQVRIRVJfTElTVCAqUmVzcG9uc2VTZ0xpc3Qs DQogICBJTiAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgUmVxdWVzdElkLA0KICAgT1VU IFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICpUYWlsQnVmZmVyRmlsbA0KICAgKTsNCiAN CiBFRklfU1RBVFVTDQogVmlydGlvRnNFcnJub1RvRWZpU3RhdHVzICgNCiAgIElOIElOVDMyIEVy cm5vDQogICApOw0KIA0KKy8vDQorLy8gV3JhcHBlciBmdW5jdGlvbnMgZm9yIEZVU0UgY29tbWFu ZHMgKHByaW1pdGl2ZXMpLg0KKy8vDQorDQorRUZJX1NUQVRVUw0KK1ZpcnRpb0ZzRnVzZUluaXRT ZXNzaW9uICgNCisgIElOIE9VVCBWSVJUSU9fRlMgKlZpcnRpb0ZzDQorICApOw0KKw0KIC8vDQog Ly8gRUZJX1NJTVBMRV9GSUxFX1NZU1RFTV9QUk9UT0NPTCBtZW1iZXIgZnVuY3Rpb25zIGZvciB0 aGUgVmlydGlvIEZpbGVzeXN0ZW0NCiAvLyBkcml2ZXIuDQogLy8NCiANCiBFRklfU1RBVFVTDQog RUZJQVBJDQogVmlydGlvRnNPcGVuVm9sdW1lICgNCmRpZmYgLS1naXQgYS9Pdm1mUGtnL1ZpcnRp b0ZzRHhlL0RyaXZlckJpbmRpbmcuYyBiL092bWZQa2cvVmlydGlvRnNEeGUvRHJpdmVyQmluZGlu Zy5jCmluZGV4IDRhMjc4N2E1MGE2ZS4uNGY3N2ZmYWE5OTUzIDEwMDY0NAotLS0gYS9Pdm1mUGtn L1ZpcnRpb0ZzRHhlL0RyaXZlckJpbmRpbmcuYworKysgYi9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL0Ry aXZlckJpbmRpbmcuYwpAQCAtNzksMjAgKzc5LDIwIEBAIFZpcnRpb0ZzQmluZGluZ1N0YXJ0ICgK ICAgICBnb3RvIEZyZWVWaXJ0aW9GczsNCiAgIH0NCiANCiAgIFN0YXR1cyA9IFZpcnRpb0ZzSW5p dCAoVmlydGlvRnMpOw0KICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KICAgICBnb3RvIENs b3NlVmlydGlvOw0KICAgfQ0KIA0KLSAgLy8NCi0gIC8vIEluaXRpYWxpemUgdGhlIEZVU0UgcmVx dWVzdCBjb3VudGVyLg0KLSAgLy8NCi0gIFZpcnRpb0ZzLT5SZXF1ZXN0SWQgPSAxOw0KKyAgU3Rh dHVzID0gVmlydGlvRnNGdXNlSW5pdFNlc3Npb24gKFZpcnRpb0ZzKTsNCisgIGlmIChFRklfRVJS T1IgKFN0YXR1cykpIHsNCisgICAgZ290byBVbmluaXRWaXJ0aW9GczsNCisgIH0NCiANCiAgIFN0 YXR1cyA9IGdCUy0+Q3JlYXRlRXZlbnQgKEVWVF9TSUdOQUxfRVhJVF9CT09UX1NFUlZJQ0VTLCBU UExfQ0FMTEJBQ0ssDQogICAgICAgICAgICAgICAgICAgVmlydGlvRnNFeGl0Qm9vdCwgVmlydGlv RnMsICZWaXJ0aW9Gcy0+RXhpdEJvb3QpOw0KICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0K ICAgICBnb3RvIFVuaW5pdFZpcnRpb0ZzOw0KICAgfQ0KIA0KICAgVmlydGlvRnMtPlNpbXBsZUZz LlJldmlzaW9uICAgPSBFRklfU0lNUExFX0ZJTEVfU1lTVEVNX1BST1RPQ09MX1JFVklTSU9OOw0K ZGlmZiAtLWdpdCBhL092bWZQa2cvVmlydGlvRnNEeGUvRnVzZUluaXQuYyBiL092bWZQa2cvVmly dGlvRnNEeGUvRnVzZUluaXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLmFhMTlkYmRjMDVjYgotLS0gL2Rldi9udWxsCisrKyBiL092bWZQa2cvVmlydGlvRnNEeGUv RnVzZUluaXQuYwpAQCAtMCwwICsxLDEzMiBAQAorLyoqIEBmaWxlDQorICBGVVNFX0lOSVQgd3Jh cHBlciBmb3IgdGhlIFZpcnRpbyBGaWxlc3lzdGVtIGRldmljZS4NCisNCisgIENvcHlyaWdodCAo QykgMjAyMCwgUmVkIEhhdCwgSW5jLg0KKw0KKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT RC0yLUNsYXVzZS1QYXRlbnQNCisqKi8NCisNCisjaW5jbHVkZSAiVmlydGlvRnNEeGUuaCINCisN CisvKioNCisgIFNlbmQgYSBGVVNFX0lOSVQgcmVxdWVzdCB0byB0aGUgVmlydGlvIEZpbGVzeXN0 ZW0gZGV2aWNlLCBmb3Igc3RhcnRpbmcgdGhlDQorICBGVVNFIHNlc3Npb24uDQorDQorICBGcm9t IHZpcnRpby12MS4xLWNzMDEtODdmYTZiNWQ4MTU1LCA1LjExLjUgRGV2aWNlIEluaXRpYWxpemF0 aW9uOiAiT24NCisgIGluaXRpYWxpemF0aW9uIHRoZSBkcml2ZXIgZmlyc3QgZGlzY292ZXJzIHRo ZSBkZXZpY2UncyB2aXJ0cXVldWVzLiBUaGUgRlVTRQ0KKyAgc2Vzc2lvbiBpcyBzdGFydGVkIGJ5 IHNlbmRpbmcgYSBGVVNFX0lOSVQgcmVxdWVzdCBhcyBkZWZpbmVkIGJ5IHRoZSBGVVNFDQorICBw cm90b2NvbCBvbiBvbmUgcmVxdWVzdCB2aXJ0cXVldWUuIg0KKw0KKyAgVGhlIGZ1bmN0aW9uIG1h eSBvbmx5IGJlIGNhbGxlZCBhZnRlciBWaXJ0aW9Gc0luaXQoKSByZXR1cm5zIHN1Y2Nlc3NmdWxs eSBhbmQNCisgIGJlZm9yZSBWaXJ0aW9Gc1VuaW5pdCgpIGlzIGNhbGxlZC4NCisNCisgIEBwYXJh bVtpbixvdXRdIFZpcnRpb0ZzICBUaGUgVmlydGlvIEZpbGVzeXN0ZW0gZGV2aWNlIHRvIHNlbmQg dGhlIEZVU0VfSU5JVA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QgdG8uIFRo ZSBGVVNFIHJlcXVlc3QgY291bnRlcg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJWaXJ0 aW9Gcy0+UmVxdWVzdElkIiBpcyBzZXQgdG8gMSBvbiBvdXRwdXQuDQorDQorICBAcmV0dmFsIEVG SV9TVUNDRVNTICAgICAgVGhlIEZVU0Ugc2Vzc2lvbiBoYXMgYmVlbiBzdGFydGVkLg0KKw0KKyAg QHJldHZhbCBFRklfVU5TVVBQT1JURUQgIEZVU0UgaW50ZXJmYWNlIHZlcnNpb24gbmVnb3RpYXRp b24gZmFpbGVkLg0KKw0KKyAgQHJldHVybiAgICAgICAgICAgICAgICAgIFRoZSAiZXJybm8iIHZh bHVlIG1hcHBlZCB0byBhbiBFRklfU1RBVFVTIGNvZGUsIGlmDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhlIFZpcnRpbyBGaWxlc3lzdGVtIGRldmljZSBleHBsaWNpdGx5IHJlcG9ydGVk IGFuDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IuDQorDQorICBAcmV0dXJuICAg ICAgICAgICAgICAgICAgRXJyb3IgY29kZXMgcHJvcGFnYXRlZCBmcm9tDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgVmlydGlvRnNTZ0xpc3RzVmFsaWRhdGUoKSwgVmlydGlvRnNGdXNlTmV3 UmVxdWVzdCgpLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpcnRpb0ZzU2dMaXN0c1N1 Ym1pdCgpLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpcnRpb0ZzRnVzZUNoZWNrUmVz cG9uc2UoKS4NCisqKi8NCitFRklfU1RBVFVTDQorVmlydGlvRnNGdXNlSW5pdFNlc3Npb24gKA0K KyAgSU4gT1VUIFZJUlRJT19GUyAqVmlydGlvRnMNCisgICkNCit7DQorICBWSVJUSU9fRlNfRlVT RV9SRVFVRVNUICAgICAgICBDb21tb25SZXE7DQorICBWSVJUSU9fRlNfRlVTRV9JTklUX1JFUVVF U1QgICBJbml0UmVxOw0KKyAgVklSVElPX0ZTX0lPX1ZFQ1RPUiAgICAgICAgICAgUmVxSW9WZWNb Ml07DQorICBWSVJUSU9fRlNfU0NBVFRFUl9HQVRIRVJfTElTVCBSZXFTZ0xpc3Q7DQorICBWSVJU SU9fRlNfRlVTRV9SRVNQT05TRSAgICAgICBDb21tb25SZXNwOw0KKyAgVklSVElPX0ZTX0ZVU0Vf SU5JVF9SRVNQT05TRSAgSW5pdFJlc3A7DQorICBWSVJUSU9fRlNfSU9fVkVDVE9SICAgICAgICAg ICBSZXNwSW9WZWNbMl07DQorICBWSVJUSU9fRlNfU0NBVFRFUl9HQVRIRVJfTElTVCBSZXNwU2dM aXN0Ow0KKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgU3RhdHVzOw0KKw0KKyAgLy8N CisgIC8vIEluaXRpYWxpemUgdGhlIEZVU0UgcmVxdWVzdCBjb3VudGVyLg0KKyAgLy8NCisgIFZp cnRpb0ZzLT5SZXF1ZXN0SWQgPSAxOw0KKw0KKyAgLy8NCisgIC8vIFNldCB1cCB0aGUgc2NhdHRl ci1nYXRoZXIgbGlzdHMuDQorICAvLw0KKyAgUmVxSW9WZWNbMF0uQnVmZmVyID0gJkNvbW1vblJl cTsNCisgIFJlcUlvVmVjWzBdLlNpemUgICA9IHNpemVvZiBDb21tb25SZXE7DQorICBSZXFJb1Zl Y1sxXS5CdWZmZXIgPSAmSW5pdFJlcTsNCisgIFJlcUlvVmVjWzFdLlNpemUgICA9IHNpemVvZiBJ bml0UmVxOw0KKyAgUmVxU2dMaXN0LklvVmVjICAgID0gUmVxSW9WZWM7DQorICBSZXFTZ0xpc3Qu TnVtVmVjICAgPSBBUlJBWV9TSVpFIChSZXFJb1ZlYyk7DQorDQorICBSZXNwSW9WZWNbMF0uQnVm ZmVyID0gJkNvbW1vblJlc3A7DQorICBSZXNwSW9WZWNbMF0uU2l6ZSAgID0gc2l6ZW9mIENvbW1v blJlc3A7DQorICBSZXNwSW9WZWNbMV0uQnVmZmVyID0gJkluaXRSZXNwOw0KKyAgUmVzcElvVmVj WzFdLlNpemUgICA9IHNpemVvZiBJbml0UmVzcDsNCisgIFJlc3BTZ0xpc3QuSW9WZWMgICAgPSBS ZXNwSW9WZWM7DQorICBSZXNwU2dMaXN0Lk51bVZlYyAgID0gQVJSQVlfU0laRSAoUmVzcElvVmVj KTsNCisNCisgIC8vDQorICAvLyBWYWxpZGF0ZSB0aGUgc2NhdHRlci1nYXRoZXIgbGlzdHM7IGNh bGN1bGF0ZSB0aGUgdG90YWwgdHJhbnNmZXIgc2l6ZXMuDQorICAvLw0KKyAgU3RhdHVzID0gVmly dGlvRnNTZ0xpc3RzVmFsaWRhdGUgKFZpcnRpb0ZzLCAmUmVxU2dMaXN0LCAmUmVzcFNnTGlzdCk7 DQorICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQorICAgIHJldHVybiBTdGF0dXM7DQorICB9 DQorDQorICAvLw0KKyAgLy8gUG9wdWxhdGUgdGhlIGNvbW1vbiByZXF1ZXN0IGhlYWRlci4NCisg IC8vDQorICBTdGF0dXMgPSBWaXJ0aW9Gc0Z1c2VOZXdSZXF1ZXN0IChWaXJ0aW9GcywgJkNvbW1v blJlcSwgUmVxU2dMaXN0LlRvdGFsU2l6ZSwNCisgICAgICAgICAgICAgVmlydGlvRnNGdXNlT3BJ bml0LCAwKTsNCisgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCisgICAgcmV0dXJuIFN0YXR1 czsNCisgIH0NCisNCisgIC8vDQorICAvLyBQb3B1bGF0ZSB0aGUgRlVTRV9JTklULXNwZWNpZmlj IGZpZWxkcy4NCisgIC8vDQorICBJbml0UmVxLk1ham9yICAgICAgICA9IFZJUlRJT19GU19GVVNF X01BSk9SOw0KKyAgSW5pdFJlcS5NaW5vciAgICAgICAgPSBWSVJUSU9fRlNfRlVTRV9NSU5PUjsN CisgIEluaXRSZXEuTWF4UmVhZGFoZWFkID0gMDsNCisgIEluaXRSZXEuRmxhZ3MgICAgICAgID0g MDsNCisNCisgIC8vDQorICAvLyBTdWJtaXQgdGhlIHJlcXVlc3QuDQorICAvLw0KKyAgU3RhdHVz ID0gVmlydGlvRnNTZ0xpc3RzU3VibWl0IChWaXJ0aW9GcywgJlJlcVNnTGlzdCwgJlJlc3BTZ0xp c3QpOw0KKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICByZXR1cm4gU3RhdHVzOw0K KyAgfQ0KKw0KKyAgLy8NCisgIC8vIFZlcmlmeSB0aGUgcmVzcG9uc2UgKGFsbCByZXNwb25zZSBi dWZmZXJzIGFyZSBmaXhlZCBzaXplKS4NCisgIC8vDQorICBTdGF0dXMgPSBWaXJ0aW9Gc0Z1c2VD aGVja1Jlc3BvbnNlICgmUmVzcFNnTGlzdCwgQ29tbW9uUmVxLlVuaXF1ZSwgTlVMTCk7DQorICBp ZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQorICAgIGlmIChTdGF0dXMgPT0gRUZJX0RFVklDRV9F UlJPUikgew0KKyAgICAgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTogTGFiZWw9XCIlc1wiIEVy cm5vPSVkXG4iLCBfX0ZVTkNUSU9OX18sDQorICAgICAgICBWaXJ0aW9Gcy0+TGFiZWwsIENvbW1v blJlc3AuRXJyb3IpKTsNCisgICAgICBTdGF0dXMgPSBWaXJ0aW9Gc0Vycm5vVG9FZmlTdGF0dXMg KENvbW1vblJlc3AuRXJyb3IpOw0KKyAgICB9DQorICAgIHJldHVybiBTdGF0dXM7DQorICB9DQor DQorICAvLw0KKyAgLy8gQ2hlY2sgRlVTRSBpbnRlcmZhY2UgdmVyc2lvbiBjb21wYXRpYmlsaXR5 Lg0KKyAgLy8NCisgIGlmIChJbml0UmVzcC5NYWpvciA8IEluaXRSZXEuTWFqb3IgfHwNCisgICAg ICAoSW5pdFJlc3AuTWFqb3IgPT0gSW5pdFJlcS5NYWpvciAmJiBJbml0UmVzcC5NaW5vciA8IElu aXRSZXEuTWlub3IpKSB7DQorICAgIHJldHVybiBFRklfVU5TVVBQT1JURUQ7DQorICB9DQorDQor ICByZXR1cm4gRUZJX1NVQ0NFU1M7DQorfQ0KZGlmZiAtLWdpdCBhL092bWZQa2cvVmlydGlvRnNE eGUvSGVscGVycy5jIGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9IZWxwZXJzLmMKaW5kZXggMzM0ZmE2 YzdkZDI2Li4wMGY3NjIxNDI3NDYgMTAwNjQ0Ci0tLSBhL092bWZQa2cvVmlydGlvRnNEeGUvSGVs cGVycy5jCisrKyBiL092bWZQa2cvVmlydGlvRnNEeGUvSGVscGVycy5jCkBAIC03MTYsMzMgKzcx NiwzNCBAQCBWaXJ0aW9Gc1NnTGlzdHNTdWJtaXQgKAogDQogICBAcGFyYW1baW5dIFJlcXVlc3RT aXplICBUaGUgdG90YWwgc2l6ZSBvZiB0aGUgcmVxdWVzdCwgaW5jbHVkaW5nDQogICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplb2YoVklSVElPX0ZTX0ZVU0VfUkVRVUVTVCkuDQogDQogICBA cGFyYW1baW5dIE9wY29kZSAgICAgICBUaGUgVklSVElPX0ZTX0ZVU0VfT1BDT0RFIHRoYXQgaWRl bnRpZmllcyB0aGUgY29tbWFuZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gc2VuZC4N CiANCiAgIEBwYXJhbVtpbl0gTm9kZUlkICAgICAgIFRoZSBpbm9kZSBudW1iZXIgb2YgdGhlIGZp bGUgdGhhdCB0aGUgcmVxdWVzdCByZWZlcnMNCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHRv Lg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgdG8uIFdoZW4gT3Bjb2RlIGlzIFZpcnRpb0Zz RnVzZU9wSW5pdCwgTm9kZUlkIGlzDQorICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVk IGJ5IHRoZSBWaXJ0aW8gRmlsZXN5c3RlbSBkZXZpY2UuDQogDQogICBAcmV0dmFsIEVGSV9JTlZB TElEX1BBUkFNRVRFUiAgUmVxdWVzdFNpemUgaXMgc21hbGxlciB0aGFuDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKFZJUlRJT19GU19GVVNFX1JFUVVFU1QpLg0KIA0K ICAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgICJWaXJ0aW9Gcy0+UmVxdWVzdElkIiBp cyBNQVhfVUlOVDY0LCBhbmQgY2FuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YmUgaW5jcmVtZW50ZWQgbm8gbW9yZS4NCiANCiAgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAg ICAgICBSZXF1ZXN0IGhhcyBiZWVuIHBvcHVsYXRlZCwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiVmlydGlvRnMtPlJlcXVlc3RJZCIgaGFzIGJlZW4gaW5jcmVtZW50ZWQuDQog KiovDQogRUZJX1NUQVRVUw0KIFZpcnRpb0ZzRnVzZU5ld1JlcXVlc3QgKA0KICAgSU4gT1VUIFZJ UlRJT19GUyAgICAgICAgICAgICAgKlZpcnRpb0ZzLA0KICAgICAgT1VUIFZJUlRJT19GU19GVVNF X1JFUVVFU1QgKlJlcXVlc3QsDQogICBJTiAgICAgVUlOVDMyICAgICAgICAgICAgICAgICBSZXF1 ZXN0U2l6ZSwNCi0gIElOICAgICBVSU5UMzIgICAgICAgICAgICAgICAgIE9wY29kZSwNCisgIElO ICAgICBWSVJUSU9fRlNfRlVTRV9PUENPREUgIE9wY29kZSwNCiAgIElOICAgICBVSU5UNjQgICAg ICAgICAgICAgICAgIE5vZGVJZA0KICAgKQ0KIHsNCiAgIGlmIChSZXF1ZXN0U2l6ZSA8IHNpemVv ZiAqUmVxdWVzdCkgew0KICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KICAgfQ0K IA0KICAgaWYgKFZpcnRpb0ZzLT5SZXF1ZXN0SWQgPT0gTUFYX1VJTlQ2NCkgew0KLS0gCjIuMTku MS4zLmczMDI0N2FhNWQyMDEKCgo=