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=-8.5 required=3.0 tests=DKIM_ADSP_ALL,DKIM_INVALID, DKIM_SIGNED,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 DE4A2C35655 for ; Fri, 21 Feb 2020 11:21:29 +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 A442F24672 for ; Fri, 21 Feb 2020 11:21:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amazon.com header.i=@amazon.com header.b="vy0We7ja" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A442F24672 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amazon.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 1j56Mj-000530-Jy; Fri, 21 Feb 2020 11:21:05 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1j56Mi-00052u-D7 for xen-devel@lists.xenproject.org; Fri, 21 Feb 2020 11:21:04 +0000 X-Inumbo-ID: 3ed701c0-549c-11ea-bc8e-bc764e2007e4 Received: from smtp-fw-9101.amazon.com (unknown [207.171.184.25]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 3ed701c0-549c-11ea-bc8e-bc764e2007e4; Fri, 21 Feb 2020 11:21:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1582284064; x=1613820064; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=OmblxcrSY+biuTqXXgXi966byZ/MlmescutJ3zjWh1s=; b=vy0We7jacXfWwA+qSGhgosZyEhqNPbm7PaMRy0qNsoFV+8kU26ngiVeH 3humJjlPX93W3krCu24eHCHlXhYeMBxToPj908NusurhrtyISkiO13CUV 9JNHBkB8AjPwIKOcLcaLBuPhk0rgOzmJuM4l8N7SUql/r6JGdlH8un/Nn w=; IronPort-SDR: JQL63GKOBQ3VmYd5odiI9HyVJk4xEaIMutKLuWANoEENWBel13ud58rRjrHdmNfuSHQ1toUjb8 cAyXXCCMQCQg== X-IronPort-AV: E=Sophos;i="5.70,468,1574121600"; d="scan'208";a="18290019" Received: from sea32-co-svc-lb4-vlan3.sea.corp.amazon.com (HELO email-inbound-relay-1d-74cf8b49.us-east-1.amazon.com) ([10.47.23.38]) by smtp-border-fw-out-9101.sea19.amazon.com with ESMTP; 21 Feb 2020 11:21:01 +0000 Received: from EX13MTAUEA002.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan2.iad.amazon.com [10.40.159.162]) by email-inbound-relay-1d-74cf8b49.us-east-1.amazon.com (Postfix) with ESMTPS id 54F21C1E5A; Fri, 21 Feb 2020 11:20:59 +0000 (UTC) Received: from EX13D32EUB002.ant.amazon.com (10.43.166.114) by EX13MTAUEA002.ant.amazon.com (10.43.61.77) with Microsoft SMTP Server (TLS) id 15.0.1236.3; Fri, 21 Feb 2020 11:20:59 +0000 Received: from EX13MTAUEB002.ant.amazon.com (10.43.60.12) by EX13D32EUB002.ant.amazon.com (10.43.166.114) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 21 Feb 2020 11:20:58 +0000 Received: from u2f063a87eabd5f.cbg10.amazon.com (10.125.106.135) by mail-relay.amazon.com (10.43.60.234) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Fri, 21 Feb 2020 11:20:57 +0000 From: Paul Durrant To: Date: Fri, 21 Feb 2020 11:20:44 +0000 Message-ID: <20200221112049.3077-2-pdurrant@amazon.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200221112049.3077-1-pdurrant@amazon.com> References: <20200221112049.3077-1-pdurrant@amazon.com> MIME-Version: 1.0 Precedence: Bulk Subject: [Xen-devel] [PATCH v7 1/6] libxl: add infrastructure to track and query 'recent' domids X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Anthony PERARD , Paul Durrant , Ian Jackson , Wei Liu Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" QSBkb21pZCBpcyBjb25zaWRlcmVkIHJlY2VudCBpZiB0aGUgZG9tYWluIGl0IHJlcHJlc2VudHMg d2FzIGRlc3Ryb3llZApsZXNzIHRoYW4gYSBzcGVjaWZpZWQgbnVtYmVyIG9mIHNlY29uZHMgYWdv LiBGb3IgZGVidWdnaW5nIGFuZC9vciB0ZXN0aW5nCnB1cnBvc2VzIHRoZSBudW1iZXIgY2FuIGJl IHNldCB1c2luZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKTElCWExfRE9NSURfUkVVU0VfVElN RU9VVC4gSWYgdGhlIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0IHRoZW4gYSBkZWZhdWx0CnZhbHVl IG9mIDYwcyBpcyB1c2VkLgoKV2hlbmV2ZXIgYSBkb21haW4gaXMgZGVzdHJveWVkLCBhIHRpbWUt c3RhbXBlZCByZWNvcmQgd2lsbCBiZSB3cml0dGVuIGludG8KYSBoaXN0b3J5IGZpbGUgKC92YXIv cnVuL3hlbi9kb21pZC1oaXN0b3J5KS4gVG8gYXZvaWQgdGhlIGhpc3RvcnkgZmlsZQpncm93aW5n IHRvbyBsYXJnZSwgYW55IHJlY29yZHMgd2l0aCB0aW1lLXN0YW1wcyB0aGF0IGluZGljYXRlIHRo YXQgdGhlCmFnZSBvZiBhIGRvbWlkIGhhcyBleGNlZWRlZCB0aGUgcmUtdXNlIHRpbWVvdXQgd2ls bCBhbHNvIGJlIHB1cmdlZC4KCkEgbmV3IHV0aWxpdHkgZnVuY3Rpb24sIGxpYnhsX19pc19yZWNl bnRfZG9taWQoKSwgaGFzIGJlZW4gYWRkZWQuIFRoaXMKZnVuY3Rpb24gcmVhZHMgdGhlIHNhbWUg aGlzdG9yeSBmaWxlIGNoZWNraW5nIHdoZXRoZXIgYSBzcGVjaWZpZWQgZG9taWQKaGFzIGEgcmVj b3JkIHRoYXQgZG9lcyBub3QgZXhjZWVkIHRoZSByZS11c2UgdGltZW91dC4gU2luY2UgdGhpcyB1 dGlsaXR5CmZ1bmN0aW9uIGRvZXMgbm90IHdyaXRlIHRvIHRoZSBmaWxlLCBubyByZWNvcmRzIGFy ZSBhY3R1YWxseSBwdXJnZWQgYnkgaXQuCgpOT1RFOiBUaGUgaGlzdG9yeSBmaWxlIGlzIHB1cmdl ZCBvbiBib290IHRvIGl0IGlzIHNhZmUgdG8gdXNlCiAgICAgIENMT0NLX01PTk9UT05JQyBhcyBh IHRpbWUgc291cmNlLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwZHVycmFudEBhbWF6 b24uY29tPgotLS0KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpD YzogV2VpIExpdSA8d2xAeGVuLm9yZz4KQ2M6IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBlcmFy ZEBjaXRyaXguY29tPgoKdjc6CiAtIEFkZHJlc3NlZCBmdXJ0aGVyIGNvbW1lbnRzIGZyb20gSWFu CiAtIEludHJvZHVjZWQgJ3N0cnVjdCBsaWJ4bF9fZG9taWRfaGlzdG9yeScgdG8gaG9sZCBjb250 ZXh0Cgp2NjoKIF8gQWRkcmVzc2VkIGZ1cnRoZXIgY29tbWVudHMgZnJvbSBJYW4KCnY1OgogLSBS ZS13b3JrIGZpbGUgbWFuaXB1bGF0aW9uIHNvbWUgbW9yZQogLSBBZGQgbW9yZSBlcnJvciBjaGVj a3MKCnY0OgogLSBVc2UgbmV3IGdlbmVyYWxpc2VkIGxpYnhsX19mbG9jawogLSBEb24ndCByZWFk IGFuZCB3cml0ZSB0aGUgc2FtZSBmaWxlCiAtIFVzZSAncmVjZW50JyByYXRoZXIgdGhhbiAncmV0 aXJlZCcKIC0gQWRkIGNvZGUgaW50byB4ZW4taW5pdC1kb20wIHRvIGRlbGV0ZSBhbiBvbGQgaGlz dG9yeSBmaWxlIGF0IGJvb3QKCnYyOgogLSBOZXcgaW4gdjIKLS0tCiB0b29scy9oZWxwZXJzL3hl bi1pbml0LWRvbTAuYyB8ICAzMCArKysrKwogdG9vbHMvbGlieGwvbGlieGwuaCAgICAgICAgICAg fCAgIDcgKysKIHRvb2xzL2xpYnhsL2xpYnhsX2RvbWFpbi5jICAgIHwgMjI2ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmMgIHwg IDEwICsrCiB0b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oICB8ICAxNCArKysKIDUgZmlsZXMg Y2hhbmdlZCwgMjg3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS90b29scy9oZWxwZXJzL3hl bi1pbml0LWRvbTAuYyBiL3Rvb2xzL2hlbHBlcnMveGVuLWluaXQtZG9tMC5jCmluZGV4IGExZTU3 Mjk0NTguLjU2ZjY5YWI2NmYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2hlbHBlcnMveGVuLWluaXQtZG9t MC5jCisrKyBiL3Rvb2xzL2hlbHBlcnMveGVuLWluaXQtZG9tMC5jCkBAIC0xMiw2ICsxMiwzMiBA QAogI2RlZmluZSBET01OQU1FX1BBVEggICAiL2xvY2FsL2RvbWFpbi8wL25hbWUiCiAjZGVmaW5l IERPTUlEX1BBVEggICAgICIvbG9jYWwvZG9tYWluLzAvZG9taWQiCiAKK2ludCBjbGVhcl9kb21p ZF9oaXN0b3J5KHZvaWQpCit7CisgICAgaW50IHJjID0gMTsKKyAgICB4ZW50b29sbG9nX2xvZ2dl cl9zdGRpb3N0cmVhbSAqbG9nZ2VyOworICAgIGxpYnhsX2N0eCAqY3R4OworCisgICAgbG9nZ2Vy ID0geHRsX2NyZWF0ZWxvZ2dlcl9zdGRpb3N0cmVhbShzdGRlcnIsIFhUTF9FUlJPUiwgMCk7Cisg ICAgaWYgKCFsb2dnZXIpCisgICAgICAgIHJldHVybiAxOworCisgICAgaWYgKGxpYnhsX2N0eF9h bGxvYygmY3R4LCBMSUJYTF9WRVJTSU9OLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgKHhl bnRvb2xsb2dfbG9nZ2VyICopbG9nZ2VyKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImNh bm5vdCBpbml0IGxpYnhsIGNvbnRleHRcbiIpOworICAgICAgICBnb3RvIG91dGxvZzsKKyAgICB9 CisKKyAgICBpZiAoIWxpYnhsX2NsZWFyX2RvbWlkX2hpc3RvcnkoY3R4KSkKKyAgICAgICAgcmMg PSAwOworCisgICAgbGlieGxfY3R4X2ZyZWUoY3R4KTsKKworb3V0bG9nOgorICAgIHh0bF9sb2dn ZXJfZGVzdHJveSgoeGVudG9vbGxvZ19sb2dnZXIgKilsb2dnZXIpOworICAgIHJldHVybiByYzsK K30KKwogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogICAgIGludCByYzsKQEAg LTcwLDYgKzk2LDEwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICBpZiAo cmMpCiAgICAgICAgIGdvdG8gb3V0OwogCisgICAgcmMgPSBjbGVhcl9kb21pZF9oaXN0b3J5KCk7 CisgICAgaWYgKHJjKQorICAgICAgICBnb3RvIG91dDsKKwogICAgIC8qIFdyaXRlIHhlbnN0b3Jl IGVudHJpZXMuICovCiAgICAgaWYgKCF4c193cml0ZSh4c2gsIFhCVF9OVUxMLCBET01JRF9QQVRI LCAiMCIsIHN0cmxlbigiMCIpKSkgewogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImNhbm5vdCBz ZXQgZG9taWQgZm9yIERvbTBcbiIpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGwuaCBi L3Rvb2xzL2xpYnhsL2xpYnhsLmgKaW5kZXggZmRlODU0ODg0Ny4uODBhZTExMGE1MiAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGwvbGlieGwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bC5oCkBAIC0y Njc5LDYgKzI2NzksMTMgQEAgc3RhdGljIGlubGluZSBpbnQgbGlieGxfcWVtdV9tb25pdG9yX2Nv bW1hbmRfMHgwNDEyMDAobGlieGxfY3R4ICpjdHgsCiAKICNpbmNsdWRlIDxsaWJ4bF9ldmVudC5o PgogCisvKgorICogVGhpcyBmdW5jdGlvbiBpcyBmb3IgdXNlIG9ubHkgZHVyaW5nIGhvc3QgaW5p dGlhbGlzYXRpb24uIElmIGl0IGlzCisgKiBpbnZva2VkIG9uIGEgaG9zdCB3aXRoIHJ1bm5pbmcg ZG9tYWlucywgb3IgY29uY3VycmVudCBsaWJ4bAorICogcHJvY2Vzc2VzIHRoZW4gdGhlIHN5c3Rl bSBtYXkgbWFsZnVudGlvbi4KKyAqLworaW50IGxpYnhsX2NsZWFyX2RvbWlkX2hpc3RvcnkobGli eGxfY3R4ICpjdHgpOworCiAjZW5kaWYgLyogTElCWExfSCAqLwogCiAvKgpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGwvbGlieGxfZG9tYWluLmMgYi90b29scy9saWJ4bC9saWJ4bF9kb21haW4uYwpp bmRleCA5NzNmYzE0MzRkLi44OTM3YWViMjYwIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4 bF9kb21haW4uYworKysgYi90b29scy9saWJ4bC9saWJ4bF9kb21haW4uYwpAQCAtMTI2OCw2ICsx MjY4LDIzMCBAQCBzdGF0aWMgdm9pZCBkbV9kZXN0cm95X2NiKGxpYnhsX19lZ2MgKmVnYywKICAg ICBsaWJ4bF9fZGV2aWNlc19kZXN0cm95KGVnYywgJmRpcy0+ZHJzKTsKIH0KIAorc3RhdGljIHVu c2lnbmVkIGludCBsaWJ4bF9fZ2V0X2RvbWlkX3JldXNlX3RpbWVvdXQodm9pZCkKK3sKKyAgICBj b25zdCBjaGFyICplbnZfdGltZW91dCA9IGdldGVudigiTElCWExfRE9NSURfUkVVU0VfVElNRU9V VCIpOworCisgICAgcmV0dXJuIGVudl90aW1lb3V0ID8gc3RydG9sKGVudl90aW1lb3V0LCBOVUxM LCAwKSA6CisgICAgICAgIExJQlhMX0RPTUlEX1JFVVNFX1RJTUVPVVQ7Cit9CisKK2NoYXIgKmxp YnhsX19kb21pZF9oaXN0b3J5X3BhdGgobGlieGxfX2djICpnYywgY29uc3QgY2hhciAqc3VmZml4 KQoreworICAgIHJldHVybiBHQ1NQUklOVEYoIiVzL2RvbWlkLWhpc3RvcnklcyIsIGxpYnhsX19y dW5fZGlyX3BhdGgoKSwKKyAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeCA/OiAiIik7Cit9CisK K2ludCBsaWJ4bF9jbGVhcl9kb21pZF9oaXN0b3J5KGxpYnhsX2N0eCAqY3R4KQoreworICAgIEdD X0lOSVQoY3R4KTsKKyAgICBjaGFyICpwYXRoOworICAgIGludCByYyA9IEVSUk9SX0ZBSUw7CisK KyAgICBwYXRoID0gbGlieGxfX2RvbWlkX2hpc3RvcnlfcGF0aChnYywgTlVMTCk7CisgICAgaWYg KCFwYXRoKQorICAgICAgICBnb3RvIG91dDsKKworICAgIGlmICh1bmxpbmsocGF0aCkgPCAwICYm IGVycm5vICE9IEVOT0VOVCkgeworICAgICAgICBMT0dFKEVSUk9SLCAiZmFpbGVkIHRvIHJlbW92 ZSAnJXMnXG4iLCBwYXRoKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgcmMgPSAw OworCitvdXQ6CisgICAgR0NfRlJFRTsKKyAgICByZXR1cm4gcmM7Cit9CisKK3N0cnVjdCBsaWJ4 bF9fZG9taWRfaGlzdG9yeSB7CisgICAgbG9uZyB0aW1lb3V0OworICAgIGNoYXIgKnBhdGg7Cisg ICAgRklMRSAqZjsKKyAgICBzdHJ1Y3QgdGltZXNwZWMgdHM7Cit9OworCitzdGF0aWMgdm9pZCBs aWJ4bF9fZG9taWRfaGlzdG9yeV9kaXNwb3NlKAorICAgIHN0cnVjdCBsaWJ4bF9fZG9taWRfaGlz dG9yeSAqY3R4dCkKK3sKKyAgICBpZiAoY3R4dC0+ZikgeworICAgICAgICBmY2xvc2UoY3R4dC0+ Zik7CisgICAgICAgIGN0eHQtPmYgPSBOVUxMOworICAgIH0KK30KKworc3RhdGljIGludCBsaWJ4 bF9fb3Blbl9kb21pZF9oaXN0b3J5KGxpYnhsX19nYyAqZ2MsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGxpYnhsX19kb21pZF9oaXN0b3J5ICpjdHh0KQorewor ICAgIGN0eHQtPnRpbWVvdXQgPSBsaWJ4bF9fZ2V0X2RvbWlkX3JldXNlX3RpbWVvdXQoKTsKKyAg ICBjdHh0LT5wYXRoID0gbGlieGxfX2RvbWlkX2hpc3RvcnlfcGF0aChnYywgTlVMTCk7CisKKyAg ICBjdHh0LT5mID0gZm9wZW4oY3R4dC0+cGF0aCwgInIiKTsKKyAgICBpZiAoIWN0eHQtPmYgJiYg ZXJybm8gIT0gRU5PRU5UKSB7CisgICAgICAgIExPR0UoRVJST1IsICJmYWlsZWQgdG8gb3BlbiAn JXMnIiwgY3R4dC0+cGF0aCk7CisgICAgICAgIHJldHVybiBFUlJPUl9GQUlMOworICAgIH0KKwor ICAgIGlmIChjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJmN0eHQtPnRzKSkgeworICAg ICAgICBMT0dFKEVSUk9SLCAiZmFpbGVkIHRvIGdldCB0aW1lIik7CisgICAgICAgIGxpYnhsX19k b21pZF9oaXN0b3J5X2Rpc3Bvc2UoY3R4dCk7CisgICAgICAgIHJldHVybiBFUlJPUl9GQUlMOwor ICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IGxpYnhsX19jbG9zZV9kb21p ZF9oaXN0b3J5KGxpYnhsX19nYyAqZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBsaWJ4bF9fZG9taWRfaGlzdG9yeSAqY3R4dCkKK3sKKyAgICBpbnQgcjsK KworICAgIGlmICghY3R4dC0+ZikgcmV0dXJuIDA7CisKKyAgICByID0gZmNsb3NlKGN0eHQtPmYp OworICAgIGN0eHQtPmYgPSBOVUxMOworICAgIGlmIChyID09IEVPRikgeworICAgICAgICBMT0dF KEVSUk9SLCAiZmFpbGVkIHRvIGNsb3NlICclcyciLCBjdHh0LT5wYXRoKTsKKyAgICAgICAgcmV0 dXJuIEVSUk9SX0ZBSUw7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQg bGlieGxfX3JlYWRfcmVjZW50KGxpYnhsX19nYyAqZ2MsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgbGlieGxfX2RvbWlkX2hpc3RvcnkgKmN0eHQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICpzZWMsIHVuc2lnbmVkIGludCAqZG9taWQp Cit7CisgICAgaWYgKCFjdHh0LT5mKSB7CisgICAgICAgICpkb21pZCA9IElOVkFMSURfRE9NSUQ7 CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGZvciAoOzspIHsKKyAgICAgICAgaW50 IHIgPSBmc2NhbmYoY3R4dC0+ZiwgIiVsdSAldSIsIHNlYywgZG9taWQpOworCisgICAgICAgIGlm IChyID09IEVPRikgeworICAgICAgICAgICAgaWYgKGZlcnJvcihjdHh0LT5mKSkgeworICAgICAg ICAgICAgICAgIExPR0UoRVJST1IsICJmYWlsZWQgdG8gcmVhZCBmcm9tICclcyciLCBjdHh0LT5w YXRoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRVJST1JfRkFJTDsKKyAgICAgICAgICAgIH0K KworICAgICAgICAgICAgKmRvbWlkID0gSU5WQUxJRF9ET01JRDsKKyAgICAgICAgICAgIGJyZWFr OworICAgICAgICB9IGVsc2UgaWYgKHIgPT0gMiAmJiBsaWJ4bF9kb21pZF92YWxpZF9ndWVzdCgq ZG9taWQpICYmCisgICAgICAgICAgICAgICAgICAgY3R4dC0+dHMudHZfc2VjIC0gKnNlYyA8PSBj dHh0LT50aW1lb3V0KSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKwor ICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IGxpYnhsX19tYXJrX2RvbWlkX3JlY2VudChs aWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCkKK3sKKyAgICBsaWJ4bF9fZmxvY2sgKmxvY2s7 CisgICAgc3RydWN0IGxpYnhsX19kb21pZF9oaXN0b3J5IGN0eHQ7CisgICAgY2hhciAqbmV3Owor ICAgIEZJTEUgKm5mID0gTlVMTDsKKyAgICBpbnQgciwgcmM7CisKKyAgICBsb2NrID0gbGlieGxf X2xvY2tfZG9taWRfaGlzdG9yeShnYyk7CisgICAgaWYgKCFsb2NrKSB7CisgICAgICAgIExPR0VE KEVSUk9SLCBkb21pZCwgImZhaWxlZCB0byBhY3F1aXJlIGxvY2siKTsKKyAgICAgICAgcmMgPSBF UlJPUl9GQUlMOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICByYyA9IGxpYnhsX19v cGVuX2RvbWlkX2hpc3RvcnkoZ2MsICZjdHh0KTsKKyAgICBpZiAocmMpIGdvdG8gb3V0OworCisg ICAgbmV3ID0gbGlieGxfX2RvbWlkX2hpc3RvcnlfcGF0aChnYywgIi5uZXciKTsKKyAgICBuZiA9 IGZvcGVuKG5ldywgImEiKTsKKyAgICBpZiAoIW5mKSB7CisgICAgICAgIExPR0VEKEVSUk9SLCBk b21pZCwgImZhaWxlZCB0byBvcGVuICclcyciLCBuZXcpOworICAgICAgICBnb3RvIG91dDsKKyAg ICB9CisKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgc2VjOworICAgICAg ICB1bnNpZ25lZCBpbnQgdmFsOworCisgICAgICAgIHJjID0gbGlieGxfX3JlYWRfcmVjZW50KGdj LCAmY3R4dCwgJnNlYywgJnZhbCk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICAg ICAgaWYgKHZhbCA9PSBJTlZBTElEX0RPTUlEKSAvKiBFT0YgKi8KKyAgICAgICAgICAgIGJyZWFr OworCisgICAgICAgIHIgPSBmcHJpbnRmKG5mLCAiJWx1ICV1XG4iLCBzZWMsIHZhbCk7CisgICAg ICAgIGlmIChyIDwgMCkgeworICAgICAgICAgICAgTE9HRUQoRVJST1IsIGRvbWlkLCAiZmFpbGVk IHRvIHdyaXRlIHRvICclcyciLCBuZXcpOworICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAg IH0KKyAgICB9CisKKyAgICByID0gZnByaW50ZihuZiwgIiVsdSAldVxuIiwgY3R4dC50cy50dl9z ZWMsIGRvbWlkKTsKKyAgICBpZiAociA8IDApIHsKKyAgICAgICAgTE9HRUQoRVJST1IsIGRvbWlk LCAiZmFpbGVkIHRvIHdyaXRlIHRvICclcyciLCBuZXcpOworICAgICAgICBnb3RvIG91dDsKKyAg ICB9CisKKyAgICByID0gZmNsb3NlKG5mKTsKKyAgICBuZiA9IE5VTEw7CisgICAgaWYgKHIgPT0g RU9GKSB7CisgICAgICAgIExPR0VEKEVSUk9SLCBkb21pZCwgImZhaWxlZCB0byBjbG9zZSAnJXMn IiwgbmV3KTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgcmMgPSBsaWJ4bF9fY2xv c2VfZG9taWRfaGlzdG9yeShnYywgJmN0eHQpOworICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAg ICByID0gcmVuYW1lKG5ldywgY3R4dC5wYXRoKTsKKyAgICBpZiAocikgeworICAgICAgICBMT0dF KEVSUk9SLCAiZmFpbGVkIHRvIHJlbmFtZSAnJXMnIC0+ICclcyciLCBuZXcsIGN0eHQucGF0aCk7 CisgICAgICAgIHJldHVybiBFUlJPUl9GQUlMOworICAgIH0KKworb3V0OgorICAgIGlmIChuZikg ZmNsb3NlKG5mKTsKKyAgICBsaWJ4bF9fZG9taWRfaGlzdG9yeV9kaXNwb3NlKCZjdHh0KTsKKyAg ICBpZiAobG9jaykgbGlieGxfX3VubG9ja19maWxlKGxvY2spOworCisgICAgcmV0dXJuIHJjOwor fQorCitpbnQgbGlieGxfX2lzX2RvbWlkX3JlY2VudChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBk b21pZCwgYm9vbCAqcmVjZW50KQoreworICAgIHN0cnVjdCBsaWJ4bF9fZG9taWRfaGlzdG9yeSBj dHh0OworICAgIGludCByYzsKKworICAgIHJjID0gbGlieGxfX29wZW5fZG9taWRfaGlzdG9yeShn YywgJmN0eHQpOworICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICAqcmVjZW50ID0gZmFsc2U7 CisgICAgZm9yICg7OykgeworICAgICAgICB1bnNpZ25lZCBsb25nIHNlYzsKKyAgICAgICAgdW5z aWduZWQgaW50IHZhbDsKKworICAgICAgICByYyA9IGxpYnhsX19yZWFkX3JlY2VudChnYywgJmN0 eHQsICZzZWMsICZ2YWwpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworCisgICAgICAgIGlm ICh2YWwgPT0gSU5WQUxJRF9ET01JRCkgLyogRU9GICovCisgICAgICAgICAgICBicmVhazsKKwor ICAgICAgICBpZiAodmFsID09IGRvbWlkICYmIGN0eHQudHMudHZfc2VjIC0gc2VjIDw9IGN0eHQu dGltZW91dCkgeworICAgICAgICAgICAgKnJlY2VudCA9IHRydWU7CisgICAgICAgICAgICBicmVh azsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJjID0gbGlieGxfX2Nsb3NlX2RvbWlkX2hpc3Rv cnkoZ2MsICZjdHh0KTsKKworb3V0OgorICAgIGxpYnhsX19kb21pZF9oaXN0b3J5X2Rpc3Bvc2Uo JmN0eHQpOworCisgICAgcmV0dXJuIHJjOworfQorCiBzdGF0aWMgdm9pZCBkZXZpY2VzX2Rlc3Ry b3lfY2IobGlieGxfX2VnYyAqZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX19kZXZpY2VzX3JlbW92ZV9zdGF0ZSAqZHJzLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludCByYykKQEAgLTEzMzEsNiArMTU1NSw4IEBAIHN0YXRpYyB2b2lkIGRldmljZXNf ZGVzdHJveV9jYihsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgIGlmICghY3R4LT54Y2gpIGdvdG8g YmFkY2hpbGQ7CiAKICAgICAgICAgaWYgKCFkaXMtPnNvZnRfcmVzZXQpIHsKKyAgICAgICAgICAg IHJjID0gbGlieGxfX21hcmtfZG9taWRfcmVjZW50KGdjLCBkb21pZCk7CisgICAgICAgICAgICBp ZiAocmMpIGdvdG8gYmFkY2hpbGQ7CiAgICAgICAgICAgICByYyA9IHhjX2RvbWFpbl9kZXN0cm95 KGN0eC0+eGNoLCBkb21pZCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICByYyA9IHhj X2RvbWFpbl9wYXVzZShjdHgtPnhjaCwgZG9taWQpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwv bGlieGxfaW50ZXJuYWwuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmMKaW5kZXggMjEx MjM2ZGM5OS4uYmJkNGM2Y2JhOSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJu YWwuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5jCkBAIC01MDQsNiArNTA0LDE2 IEBAIGxpYnhsX19mbG9jayAqbGlieGxfX2xvY2tfZG9tYWluX3VzZXJkYXRhKGxpYnhsX19nYyAq Z2MsIHVpbnQzMl90IGRvbWlkKQogICAgIHJldHVybiBsb2NrOwogfQogCitsaWJ4bF9fZmxvY2sg KmxpYnhsX19sb2NrX2RvbWlkX2hpc3RvcnkobGlieGxfX2djICpnYykKK3sKKyAgICBjb25zdCBj aGFyICpsb2NrZmlsZTsKKworICAgIGxvY2tmaWxlID0gbGlieGxfX2RvbWlkX2hpc3RvcnlfcGF0 aChnYywgIi5sb2NrIik7CisgICAgaWYgKCFsb2NrZmlsZSkgcmV0dXJuIE5VTEw7CisKKyAgICBy ZXR1cm4gbGlieGxfX2xvY2tfZmlsZShnYywgbG9ja2ZpbGUpOworfQorCiBpbnQgbGlieGxfX2dl dF9kb21haW5fY29uZmlndXJhdGlvbihsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9jb25maWcgKmRf Y29uZmlnKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rv b2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5kZXggNDkzNjQ0NjA2OS4uNDNlNTg4NWQxZSAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4 bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC00MjYzLDYgKzQyNjMsOCBAQCBfaGlkZGVuIHZvaWQgbGli eGxfX3JlbXVzX3RlYXJkb3duKGxpYnhsX19lZ2MgKmVnYywKIF9oaWRkZW4gdm9pZCBsaWJ4bF9f cmVtdXNfcmVzdG9yZV9zZXR1cChsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2RvbWFpbl9jcmVhdGVfc3RhdGUgKmRjcyk7CiAK K19oaWRkZW4gY2hhciAqbGlieGxfX2RvbWlkX2hpc3RvcnlfcGF0aChsaWJ4bF9fZ2MgKmdjLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN1ZmZp eCk7CiAKIC8qCiAgKiBDb252ZW5pZW5jZSBtYWNyb3MuCkBAIC00NjYxLDYgKzQ2NjMsNyBAQCBs aWJ4bF9fZmxvY2sgKmxpYnhsX19sb2NrX2ZpbGUobGlieGxfX2djICpnYywgY29uc3QgY2hhciAq ZmlsZW5hbWUpOwogdm9pZCBsaWJ4bF9fdW5sb2NrX2ZpbGUobGlieGxfX2Zsb2NrICpsb2NrKTsK IAogbGlieGxfX2Zsb2NrICpsaWJ4bF9fbG9ja19kb21haW5fdXNlcmRhdGEobGlieGxfX2djICpn YywgdWludDMyX3QgZG9taWQpOworbGlieGxfX2Zsb2NrICpsaWJ4bF9fbG9ja19kb21pZF9oaXN0 b3J5KGxpYnhsX19nYyAqZ2MpOwogCiAvKgogICogUmV0cmlldmUgLyBzdG9yZSBkb21haW4gY29u ZmlndXJhdGlvbiBmcm9tIC8gdG8gbGlieGwgcHJpdmF0ZQpAQCAtNDc5OSw2ICs0ODAyLDE3IEBA IF9oaWRkZW4gaW50IGxpYnhsX19kb21haW5fcHZjb250cm9sKGxpYnhsX19lZ2MgKmVnYywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX194c3dhaXRfc3RhdGUgKnB2 Y29udHJvbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgZG9t aWQsIGNvbnN0IGNoYXIgKmNtZCk7CiAKKy8qCisgKiBNYXhpbXVtIG51bWJlciBvZiBzZWNvbmRz IGFmdGVyIGRlc2N0cnVjdGlvbiB0aGVuIGEgZG9taWQgcmVtYWlucworICogJ3JlY2VudCcuIFJl Y2VudCBkb21pZHMgYXJlIG5vdCBhbGxvd2VkIHRvIGJlIHJlLXVzZWQuIFRoaXMgY2FuIGJlCisg KiBvdmVyaWRkZW4sIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMsIGJ5IHRoZSBlbnZpcm9ubWVudCB2 YXJpYWJsZSBvZiB0aGUKKyAqIHNhbWUgbmFtZS4KKyAqLworI2RlZmluZSBMSUJYTF9ET01JRF9S RVVTRV9USU1FT1VUIDYwCisKKy8qIENoZWNrIHdoZXRoZXIgYSBkb21pZCBpcyByZWNlbnQgKi8K K2ludCBsaWJ4bF9faXNfZG9taWRfcmVjZW50KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlk LCBib29sICpyZWNlbnQpOworCiAjZW5kaWYKIAogLyoKLS0gCjIuMjAuMQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=