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 X-Spam-Level: X-Spam-Status: No, score=-10.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 58EFFECDE28 for ; Wed, 11 Sep 2019 06:20:43 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 28F1721A4C for ; Wed, 11 Sep 2019 06:20:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 28F1721A4C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i7vzD-0003d2-NJ; Wed, 11 Sep 2019 06:20:15 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i7vzB-0003cw-Pk for xen-devel@lists.xenproject.org; Wed, 11 Sep 2019 06:20:13 +0000 X-Inumbo-ID: 3214ba24-d45c-11e9-b299-bc764e2007e4 Received: from mx1.suse.de (unknown [195.135.220.15]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 3214ba24-d45c-11e9-b299-bc764e2007e4; Wed, 11 Sep 2019 06:20:05 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id EDCBEB062; Wed, 11 Sep 2019 06:20:04 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Wed, 11 Sep 2019 08:19:59 +0200 Message-Id: <20190911062001.25931-4-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190911062001.25931-1-jgross@suse.com> References: <20190911062001.25931-1-jgross@suse.com> Subject: [Xen-devel] [RFC PATCH 3/5] libs: add libxenfs X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Ian Jackson , Wei Liu MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" QWRkIHRoZSBuZXcgbGlicmFyeSBsaWJ4ZW5mcyBmb3IgYWNjZXNzIHRvIHRoZSBoeXBlcnZpc29y IGZpbGVzeXN0ZW0uCgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5j b20+Ci0tLQogdG9vbHMvUnVsZXMubWsgICAgICAgICAgICAgICAgfCAgIDYgKysKIHRvb2xzL2xp YnMvTWFrZWZpbGUgICAgICAgICAgIHwgICAxICsKIHRvb2xzL2xpYnMvZnMvTWFrZWZpbGUgICAg ICAgIHwgIDE0ICsrKwogdG9vbHMvbGlicy9mcy9jb3JlLmMgICAgICAgICAgfCAxOTggKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0b29scy9saWJzL2ZzL2luY2x1 ZGUveGVuZnMuaCB8ICA1NyArKysrKysrKysrKysKIHRvb2xzL2xpYnMvZnMvbGlieGVuZnMubWFw ICAgIHwgICA4ICsrCiB0b29scy9saWJzL2ZzL3hlbmZzLnBjLmluICAgICB8ICAxMCArKysKIDcg ZmlsZXMgY2hhbmdlZCwgMjk0IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29s cy9saWJzL2ZzL01ha2VmaWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvbGlicy9mcy9jb3Jl LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9saWJzL2ZzL2luY2x1ZGUveGVuZnMuaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2xpYnMvZnMvbGlieGVuZnMubWFwCiBjcmVhdGUgbW9kZSAx MDA2NDQgdG9vbHMvbGlicy9mcy94ZW5mcy5wYy5pbgoKZGlmZiAtLWdpdCBhL3Rvb2xzL1J1bGVz Lm1rIGIvdG9vbHMvUnVsZXMubWsKaW5kZXggY2Y4OTM1ZDZhMy4uNjBhYjk3ZTgwZiAxMDA2NDQK LS0tIGEvdG9vbHMvUnVsZXMubWsKKysrIGIvdG9vbHMvUnVsZXMubWsKQEAgLTE5LDYgKzE5LDcg QEAgWEVOX0xJQlhFTkdOVFRBQiAgID0gJChYRU5fUk9PVCkvdG9vbHMvbGlicy9nbnR0YWIKIFhF Tl9MSUJYRU5DQUxMICAgICA9ICQoWEVOX1JPT1QpL3Rvb2xzL2xpYnMvY2FsbAogWEVOX0xJQlhF TkZPUkVJR05NRU1PUlkgPSAkKFhFTl9ST09UKS90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkKIFhF Tl9MSUJYRU5ERVZJQ0VNT0RFTCA9ICQoWEVOX1JPT1QpL3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwK K1hFTl9MSUJYRU5GUyAgICAgICA9ICQoWEVOX1JPT1QpL3Rvb2xzL2xpYnMvZnMKIFhFTl9MSUJY QyAgICAgICAgICA9ICQoWEVOX1JPT1QpL3Rvb2xzL2xpYnhjCiBYRU5fWEVOTElHSFQgICAgICAg PSAkKFhFTl9ST09UKS90b29scy9saWJ4bAogIyBDdXJyZW50bHkgbGlieGx1dGlsIGxpdmVzIGlu IHRoZSBzYW1lIGRpcmVjdG9yeSBhcyBsaWJ4ZW5saWdodApAQCAtMTM0LDYgKzEzNSwxMSBAQCBT SERFUFNfbGlieGVuZGV2aWNlbW9kZWwgPSAkKFNITElCX2xpYnhlbnRvb2xsb2cpICQoU0hMSUJf bGlieGVudG9vbGNvcmUpICQoU0hMSQogTERMSUJTX2xpYnhlbmRldmljZW1vZGVsID0gJChTSERF UFNfbGlieGVuZGV2aWNlbW9kZWwpICQoWEVOX0xJQlhFTkRFVklDRU1PREVMKS9saWJ4ZW5kZXZp Y2Vtb2RlbCQobGliZXh0ZW5zaW9uKQogU0hMSUJfbGlieGVuZGV2aWNlbW9kZWwgID0gJChTSERF UFNfbGlieGVuZGV2aWNlbW9kZWwpIC1XbCwtcnBhdGgtbGluaz0kKFhFTl9MSUJYRU5ERVZJQ0VN T0RFTCkKIAorQ0ZMQUdTX2xpYnhlbmZzID0gLUkkKFhFTl9MSUJYRU5GUykvaW5jbHVkZSAkKENG TEFHU194ZW5pbmNsdWRlKQorU0hERVBTX2xpYnhlbmZzID0gJChTSExJQl9saWJ4ZW50b29sbG9n KSAkKFNITElCX2xpYnhlbnRvb2xjb3JlKSAkKFNITElCX3hlbmNhbGwpCitMRExJQlNfbGlieGVu ZnMgPSAkKFNIREVQU19saWJ4ZW5mcykgJChYRU5fTElCWEVORlMpL2xpYnhlbmZzJChsaWJleHRl bnNpb24pCitTSExJQl9saWJ4ZW5mcyAgPSAkKFNIREVQU19saWJ4ZW5mcykgLVdsLC1ycGF0aC1s aW5rPSQoWEVOX0xJQlhFTkZTKQorCiAjIGNvZGUgd2hpY2ggY29tcGlsZXMgYWdhaW5zdCBsaWJ4 ZW5jdHJsIGdldCBfX1hFTl9UT09MU19fIGFuZAogIyB0aGVyZWZvcmUgc2VlcyB0aGUgdW5zdGFi bGUgaHlwZXJjYWxsIGludGVyZmFjZXMuCiBDRkxBR1NfbGlieGVuY3RybCA9IC1JJChYRU5fTElC WEMpL2luY2x1ZGUgJChDRkxBR1NfbGlieGVudG9vbGxvZykgJChDRkxBR1NfbGlieGVuZm9yZWln bm1lbW9yeSkgJChDRkxBR1NfbGlieGVuZGV2aWNlbW9kZWwpICQoQ0ZMQUdTX3hlbmluY2x1ZGUp IC1EX19YRU5fVE9PTFNfXwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9NYWtlZmlsZSBiL3Rvb2xz L2xpYnMvTWFrZWZpbGUKaW5kZXggODg5MDFlNzM0MS4uZTIxZmQwNTE2ZSAxMDA2NDQKLS0tIGEv dG9vbHMvbGlicy9NYWtlZmlsZQorKysgYi90b29scy9saWJzL01ha2VmaWxlCkBAIC05LDYgKzks NyBAQCBTVUJESVJTLXkgKz0gZ250dGFiCiBTVUJESVJTLXkgKz0gY2FsbAogU1VCRElSUy15ICs9 IGZvcmVpZ25tZW1vcnkKIFNVQkRJUlMteSArPSBkZXZpY2Vtb2RlbAorU1VCRElSUy15ICs9IGZz CiAKIGlmZXEgKCQoQ09ORklHX1JVTVApLHkpCiBTVUJESVJTLXkgOj0gdG9vbGNvcmUKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnMvZnMvTWFrZWZpbGUgYi90b29scy9saWJzL2ZzL01ha2VmaWxlCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjI2YWM2NzdiY2MKLS0tIC9kZXYv bnVsbAorKysgYi90b29scy9saWJzL2ZzL01ha2VmaWxlCkBAIC0wLDAgKzEsMTQgQEAKK1hFTl9S T09UID0gJChDVVJESVIpLy4uLy4uLy4uCitpbmNsdWRlICQoWEVOX1JPT1QpL3Rvb2xzL1J1bGVz Lm1rCisKK01BSk9SICAgID0gMQorTUlOT1IgICAgPSAwCitMSUJOQU1FICA6PSBmcworVVNFTElC UyAgOj0gdG9vbGxvZyB0b29sY29yZSBjYWxsCisKK1NSQ1MteSAgICAgICAgICAgICAgICAgKz0g Y29yZS5jCisKK2luY2x1ZGUgLi4vbGlicy5taworCiskKFBLR19DT05GSUdfTE9DQUwpOiBQS0df Q09ORklHX0lOQ0RJUiA9ICQoWEVOX0xJQlhFTkZTKS9pbmNsdWRlCiskKFBLR19DT05GSUdfTE9D QUwpOiBQS0dfQ09ORklHX0NGTEFHU19MT0NBTCA9ICQoQ0ZMQUdTX3hlbmluY2x1ZGUpCmRpZmYg LS1naXQgYS90b29scy9saWJzL2ZzL2NvcmUuYyBiL3Rvb2xzL2xpYnMvZnMvY29yZS5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmYyMDJhNmJkOTkKLS0tIC9kZXYvbnVs bAorKysgYi90b29scy9saWJzL2ZzL2NvcmUuYwpAQCAtMCwwICsxLDE5OCBAQAorLyoKKyAqIENv cHlyaWdodCAoYykgMjAxOSBTVVNFIFNvZnR3YXJlIFNvbHV0aW9ucyBHZXJtYW55IEdtYkgKKyAq CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOworICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UuCisgKgorICog VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9u ZyB3aXRoIHRoaXMgbGlicmFyeTsgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorICovCisKKyNkZWZpbmUgX19YRU5fVE9PTFNfXyAxCisKKyNpbmNsdWRlIDxlcnJu by5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVk ZSA8eGVudG9vbGxvZy5oPgorI2luY2x1ZGUgPHhlbmZzLmg+CisjaW5jbHVkZSA8eGVuY2FsbC5o PgorCisjaW5jbHVkZSA8eGVudG9vbGNvcmVfaW50ZXJuYWwuaD4KKworc3RydWN0IHhlbmZzX2hh bmRsZSB7CisgICAgeGVudG9vbGxvZ19sb2dnZXIgKmxvZ2dlciwgKmxvZ2dlcl90b2ZyZWU7Cisg ICAgdW5zaWduZWQgaW50IGZsYWdzOworICAgIHhlbmNhbGxfaGFuZGxlICp4Y2FsbDsKK307CisK K3hlbmZzX2hhbmRsZSAqeGVuZnNfb3Blbih4ZW50b29sbG9nX2xvZ2dlciAqbG9nZ2VyLAorICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG9wZW5fZmxhZ3MpCit7CisgICAgeGVuZnNf aGFuZGxlICpmc2hkbCA9IGNhbGxvYygxLCBzaXplb2YoKmZzaGRsKSk7CisKKyAgICBpZiAoIWZz aGRsKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGZzaGRsLT5mbGFncyA9IG9wZW5fZmxh Z3M7CisgICAgZnNoZGwtPmxvZ2dlciA9IGxvZ2dlcjsKKyAgICBmc2hkbC0+bG9nZ2VyX3RvZnJl ZSA9IE5VTEw7CisKKyAgICBpZiAoIWZzaGRsLT5sb2dnZXIpIHsKKyAgICAgICAgZnNoZGwtPmxv Z2dlciA9IGZzaGRsLT5sb2dnZXJfdG9mcmVlID0KKyAgICAgICAgICAgICh4ZW50b29sbG9nX2xv Z2dlciopCisgICAgICAgICAgICB4dGxfY3JlYXRlbG9nZ2VyX3N0ZGlvc3RyZWFtKHN0ZGVyciwg WFRMX1BST0dSRVNTLCAwKTsKKyAgICAgICAgaWYgKCFmc2hkbC0+bG9nZ2VyKQorICAgICAgICAg ICAgZ290byBlcnI7CisgICAgfQorCisgICAgZnNoZGwtPnhjYWxsID0geGVuY2FsbF9vcGVuKGZz aGRsLT5sb2dnZXIsIDApOworICAgIGlmICghZnNoZGwtPnhjYWxsKQorICAgICAgICBnb3RvIGVy cjsKKworCisgICAgcmV0dXJuIGZzaGRsOworCitlcnI6CisgICAgeHRsX2xvZ2dlcl9kZXN0cm95 KGZzaGRsLT5sb2dnZXJfdG9mcmVlKTsKKyAgICB4ZW5jYWxsX2Nsb3NlKGZzaGRsLT54Y2FsbCk7 CisgICAgZnJlZShmc2hkbCk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK2ludCB4ZW5mc19jbG9z ZSh4ZW5mc19oYW5kbGUgKmZzaGRsKQoreworICAgIGlmICghZnNoZGwpCisgICAgICAgIHJldHVy biAwOworCisgICAgeGVuY2FsbF9jbG9zZShmc2hkbC0+eGNhbGwpOworICAgIHh0bF9sb2dnZXJf ZGVzdHJveShmc2hkbC0+bG9nZ2VyX3RvZnJlZSk7CisgICAgZnJlZShmc2hkbCk7CisgICAgcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkICp4ZW5mc19yZWFkX2FueSh4ZW5mc19oYW5kbGUgKmZz aGRsLCBjb25zdCBjaGFyICpwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGludCBjbWQpCit7CisgICAgY2hhciAqYnVmID0gTlVMTCwgKnBhdGhfYnVmID0gTlVMTDsK KyAgICBpbnQgcmV0OworICAgIGludCBzeiwgcGF0aF9zejsKKworICAgIGlmICghZnNoZGwpIHsK KyAgICAgICAgZXJybm8gPSBFQkFERjsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAg cGF0aF9zeiA9IHN0cmxlbihwYXRoKSArIDE7CisgICAgaWYgKHBhdGhfc3ogPiBYRU5fRlNfTUFY X1BBVEhMRU4pCisgICAgeworICAgICAgICBlcnJubyA9IEVOQU1FVE9PTE9ORzsKKyAgICAgICAg Z290byBvdXQ7CisgICAgfQorICAgIHBhdGhfYnVmID0geGVuY2FsbF9hbGxvY19idWZmZXIoZnNo ZGwtPnhjYWxsLCBwYXRoX3N6KTsKKyAgICBpZiAoIXBhdGhfYnVmKSB7CisgICAgICAgIGVycm5v ID0gRU5PTUVNOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisgICAgc3RyY3B5KHBhdGhfYnVm LCBwYXRoKTsKKworICAgIGZvciAoc3ogPSA0MDk2OyBzeiA+IDA7IHN6ID0gcmV0KSB7CisgICAg ICAgIGlmIChidWYpCisgICAgICAgICAgICB4ZW5jYWxsX2ZyZWVfYnVmZmVyKGZzaGRsLT54Y2Fs bCwgYnVmKTsKKworICAgICAgICBidWYgPSB4ZW5jYWxsX2FsbG9jX2J1ZmZlcihmc2hkbC0+eGNh bGwsIHN6KTsKKyAgICAgICAgaWYgKCFidWYpIHsKKyAgICAgICAgICAgIGVycm5vID0gRU5PTUVN OworICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgIH0KKworICAgICAgICByZXQgPSB4ZW5j YWxsNShmc2hkbC0+eGNhbGwsIF9fSFlQRVJWSVNPUl9maWxlc3lzdGVtX29wLCBjbWQsCisgICAg ICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKXBhdGhfYnVmLCBwYXRoX3N6LAorICAg ICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZylidWYsIHN6KTsKKyAgICB9CisKKyAg ICBpZiAocmV0IDwgMCkgeworICAgICAgICBlcnJubyA9IC1yZXQ7CisgICAgICAgIHhlbmNhbGxf ZnJlZV9idWZmZXIoZnNoZGwtPnhjYWxsLCBidWYpOworICAgICAgICBidWYgPSBOVUxMOworICAg ICAgICBnb3RvIG91dDsKKyAgICB9CisKKyBvdXQ6CisgICAgcmV0ID0gZXJybm87CisgICAgeGVu Y2FsbF9mcmVlX2J1ZmZlcihmc2hkbC0+eGNhbGwsIHBhdGhfYnVmKTsKKyAgICBlcnJubyA9IHJl dDsKKworICAgIHJldHVybiBidWY7Cit9CisKK2NoYXIgKnhlbmZzX3JlYWQoeGVuZnNfaGFuZGxl ICpmc2hkbCwgY29uc3QgY2hhciAqcGF0aCkKK3sKKyAgICBjaGFyICpidWYsICpyZXRfYnVmID0g TlVMTDsKKyAgICBpbnQgcmV0OworCisgICAgYnVmID0geGVuZnNfcmVhZF9hbnkoZnNoZGwsIHBh dGgsIFhFTl9GU19PUF9yZWFkX2NvbnRlbnRzKTsKKyAgICBpZiAoYnVmKQorICAgICAgICByZXRf YnVmID0gc3RyZHVwKGJ1Zik7CisKKyAgICByZXQgPSBlcnJubzsKKyAgICB4ZW5jYWxsX2ZyZWVf YnVmZmVyKGZzaGRsLT54Y2FsbCwgYnVmKTsKKyAgICBlcnJubyA9IHJldDsKKworICAgIHJldHVy biByZXRfYnVmOworfQorCitzdHJ1Y3QgeGVuZnNfZGlyZW50ICp4ZW5mc19yZWFkZGlyKHhlbmZz X2hhbmRsZSAqZnNoZGwsIGNvbnN0IGNoYXIgKnBhdGgsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbnVtX2VudHJpZXMpCit7CisgICAgdm9pZCAqYnVm LCAqY3VycjsKKyAgICBpbnQgcmV0OworICAgIGNoYXIgKm5hbWVzOworICAgIHN0cnVjdCB4ZW5m c19kaXJlbnQgKnJldF9idWYgPSBOVUxMOworICAgIHVuc2lnbmVkIGludCBuLCBuYW1lX3N6ID0g MDsKKyAgICBzdHJ1Y3QgeGVuX2ZzX2RpcmVudHJ5ICplbnRyeTsKKworICAgIGJ1ZiA9IHhlbmZz X3JlYWRfYW55KGZzaGRsLCBwYXRoLCBYRU5fRlNfT1BfcmVhZF9kaXIpOworICAgIGlmICghYnVm KQorICAgICAgICBnb3RvIG91dDsKKworICAgIGN1cnIgPSBidWY7CisgICAgZm9yIChuID0gMTs7 IG4rKykgeworICAgICAgICBlbnRyeSA9IGN1cnI7CisgICAgICAgIG5hbWVfc3ogKz0gc3RybGVu KGVudHJ5LT5uYW1lKSArIDE7CisgICAgICAgIGlmICghZW50cnktPm9mZl9uZXh0KQorICAgICAg ICAgICAgYnJlYWs7CisKKyAgICAgICAgY3VyciArPSBlbnRyeS0+b2ZmX25leHQ7CisgICAgfQor CisgICAgcmV0X2J1ZiA9IG1hbGxvYyhuICogc2l6ZW9mKCpyZXRfYnVmKSArIG5hbWVfc3opOwor ICAgIGlmICghcmV0X2J1ZikKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICAqbnVtX2VudHJpZXMg PSBuOworICAgIG5hbWVzID0gKGNoYXIgKikocmV0X2J1ZiAgKyBuKTsKKyAgICBjdXJyID0gYnVm OworICAgIGZvciAobiA9IDA7IG4gPCAqbnVtX2VudHJpZXM7IG4rKykgeworICAgICAgICBlbnRy eSA9IGN1cnI7CisgICAgICAgIHJldF9idWZbbl0ubmFtZSA9IG5hbWVzOworICAgICAgICByZXRf YnVmW25dLmlzX2RpciA9IGVudHJ5LT5mbGFncyAmIFhFTl9GU19JU0RJUjsKKyAgICAgICAgc3Ry Y3B5KG5hbWVzLCBlbnRyeS0+bmFtZSk7CisgICAgICAgIG5hbWVzICs9IHN0cmxlbihlbnRyeS0+ bmFtZSkgKyAxOworICAgICAgICBjdXJyICs9IGVudHJ5LT5vZmZfbmV4dDsKKyAgICB9CisKKyBv dXQ6CisgICAgcmV0ID0gZXJybm87CisgICAgeGVuY2FsbF9mcmVlX2J1ZmZlcihmc2hkbC0+eGNh bGwsIGJ1Zik7CisgICAgZXJybm8gPSByZXQ7CisKKyAgICByZXR1cm4gcmV0X2J1ZjsKK30KZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZnMvaW5jbHVkZS94ZW5mcy5oIGIvdG9vbHMvbGlicy9mcy9p bmNsdWRlL3hlbmZzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMDAw OTE5ZWQ1ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2xpYnMvZnMvaW5jbHVkZS94ZW5mcy5o CkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTkgU1VTRSBTb2Z0d2Fy ZSBTb2x1dGlvbnMgR2VybWFueSBHbWJICisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsKKyAqIHZlcnNpb24g Mi4xIG9mIHRoZSBMaWNlbnNlLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V CisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworI2lmbmRlZiBYRU5GU19I CisjZGVmaW5lIFhFTkZTX0gKKworI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNpbmNsdWRlIDxzdGRp bnQuaD4KKworI2luY2x1ZGUgPHhlbi94ZW4uaD4KKyNpbmNsdWRlIDx4ZW4vZmlsZXN5c3RlbS5o PgorCisvKiBDYWxsZXJzIHdobyBkb24ndCBjYXJlIGRvbid0IG5lZWQgdG8gI2luY2x1ZGUgPHhl bnRvb2xsb2cuaD4gKi8KK3N0cnVjdCB4ZW50b29sbG9nX2xvZ2dlcjsKKwordHlwZWRlZiBzdHJ1 Y3QgeGVuZnNfaGFuZGxlIHhlbmZzX2hhbmRsZTsKKworc3RydWN0IHhlbmZzX2RpcmVudCB7Cisg ICAgY2hhciAqbmFtZTsKKyAgICBib29sIGlzX2RpcjsKK307CisKK3hlbmZzX2hhbmRsZSAqeGVu ZnNfb3BlbihzdHJ1Y3QgeGVudG9vbGxvZ19sb2dnZXIgKmxvZ2dlciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgb3Blbl9mbGFncyk7CitpbnQgeGVuZnNfY2xvc2UoeGVu ZnNfaGFuZGxlICpmc2hkbCk7CisKKy8qIFJldHVybmVkIGJ1ZmZlciBzaG91bGQgYmUgZnJlZWQg dmlhIGZyZWUoKS4gKi8KK2NoYXIgKnhlbmZzX3JlYWQoeGVuZnNfaGFuZGxlICpmc2hkbCwgY29u c3QgY2hhciAqcGF0aCk7CisKKy8qIFJldHVybmVkIGJ1ZmZlciBzaG91bGQgYmUgZnJlZWQgdmlh IGZyZWUoKS4gKi8KK3N0cnVjdCB4ZW5mc19kaXJlbnQgKnhlbmZzX3JlYWRkaXIoeGVuZnNfaGFu ZGxlICpmc2hkbCwgY29uc3QgY2hhciAqcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50ICpudW1fZW50cmllcyk7CisKKyNlbmRpZiAvKiBYRU5GU19I ICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5 bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRl bnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9m cy9saWJ4ZW5mcy5tYXAgYi90b29scy9saWJzL2ZzL2xpYnhlbmZzLm1hcApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5hYzQyZDkxNjNlCi0tLSAvZGV2L251bGwKKysrIGIv dG9vbHMvbGlicy9mcy9saWJ4ZW5mcy5tYXAKQEAgLTAsMCArMSw4IEBACitWRVJTXzEuMCB7CisJ Z2xvYmFsOgorCQl4ZW5mc19vcGVuOworCQl4ZW5mc19jbG9zZTsKKwkJeGVuZnNfcmVhZDsKKwkJ eGVuZnNfcmVhZGRpcjsKKwlsb2NhbDogKjsgLyogRG8gbm90IGV4cG9zZSBhbnl0aGluZyBieSBk ZWZhdWx0ICovCit9OwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9mcy94ZW5mcy5wYy5pbiBiL3Rv b2xzL2xpYnMvZnMveGVuZnMucGMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uZWEzYzE3YjI1MwotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2xpYnMvZnMveGVuZnMu cGMuaW4KQEAgLTAsMCArMSwxMCBAQAorcHJlZml4PUBAcHJlZml4QEAKK2luY2x1ZGVkaXI9QEBp bmNkaXJAQAorbGliZGlyPUBAbGliZGlyQEAKKworTmFtZTogWGVuZnMKK0Rlc2NyaXB0aW9uOiBU aGUgWGVuZnMgbGlicmFyeSBmb3IgWGVuIGh5cGVydmlzb3IKK1ZlcnNpb246IEBAdmVyc2lvbkBA CitDZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfSBAQGNmbGFnc2xvY2FsQEAKK0xpYnM6IEBAbGlic2Zs YWdAQCR7bGliZGlyfSAtbHhlbmZzCitSZXF1aXJlcy5wcml2YXRlOiB4ZW50b29sY29yZSx4ZW50 b29sbG9nLHhlbmNhbGwKLS0gCjIuMTYuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0 aW5mby94ZW4tZGV2ZWw=