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.4 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,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 1368DC2D0DB for ; Wed, 22 Jan 2020 14:45:26 +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 CDB172465B for ; Wed, 22 Jan 2020 14:45:25 +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="kcrMtLep" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CDB172465B 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 1iuHFo-0000dh-VY; Wed, 22 Jan 2020 14:45:12 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iuHFn-0000d9-Si for xen-devel@lists.xenproject.org; Wed, 22 Jan 2020 14:45:11 +0000 X-Inumbo-ID: c7b87b2e-3d25-11ea-bc69-12813bfff9fa Received: from smtp-fw-33001.amazon.com (unknown [207.171.190.10]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id c7b87b2e-3d25-11ea-bc69-12813bfff9fa; Wed, 22 Jan 2020 14:45:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1579704307; x=1611240307; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=DHduVegESmMtn+lE6L/Hyq6QtrmQjfQmHTDSJj/Bhbg=; b=kcrMtLepv0uXDqhIpj3C6xqgOsZ6UVuUdQHvHv9WrH6OpmI4b0PrsrJo Rp1xijhyAbGJ09G+SM1UKhE/e75eH5qaeyHPRgJfTenU6vzaBGoRwI/jp GuMfBJQcynwP18BkLQc8Bo8cOP89Zili2dDRlnsXrAYpv1hOA2VK9M3X9 s=; IronPort-SDR: 9RR9IvD2lFTTtHCaqDHMPwqS+neaYpzW+TSuffoH2JPfK8d/fNA0tZm97HvdbkJPy04YdlaKBu CtyfJfNEsQ4Q== X-IronPort-AV: E=Sophos;i="5.70,350,1574121600"; d="scan'208";a="21741813" Received: from sea32-co-svc-lb4-vlan3.sea.corp.amazon.com (HELO email-inbound-relay-1e-57e1d233.us-east-1.amazon.com) ([10.47.23.38]) by smtp-border-fw-out-33001.sea14.amazon.com with ESMTP; 22 Jan 2020 14:44:59 +0000 Received: from EX13MTAUEA002.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan3.iad.amazon.com [10.40.159.166]) by email-inbound-relay-1e-57e1d233.us-east-1.amazon.com (Postfix) with ESMTPS id 02B62141C32; Wed, 22 Jan 2020 14:44:57 +0000 (UTC) Received: from EX13D32EUC004.ant.amazon.com (10.43.164.121) by EX13MTAUEA002.ant.amazon.com (10.43.61.77) with Microsoft SMTP Server (TLS) id 15.0.1236.3; Wed, 22 Jan 2020 14:44:57 +0000 Received: from EX13MTAUEE002.ant.amazon.com (10.43.62.24) by EX13D32EUC004.ant.amazon.com (10.43.164.121) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 22 Jan 2020 14:44:56 +0000 Received: from u2f063a87eabd5f.cbg10.amazon.com (10.125.106.135) by mail-relay.amazon.com (10.43.62.224) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Wed, 22 Jan 2020 14:44:54 +0000 From: Paul Durrant To: Date: Wed, 22 Jan 2020 14:44:43 +0000 Message-ID: <20200122144446.919-5-pdurrant@amazon.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200122144446.919-1-pdurrant@amazon.com> References: <20200122144446.919-1-pdurrant@amazon.com> MIME-Version: 1.0 Precedence: Bulk Subject: [Xen-devel] [PATCH v4 4/7] 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 LiBUaGUgbnVtYmVyIGNhbiBiZSBzZXQgdXNpbmcKdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIExJ QlhMX0RPTUlEX1JFVVNFX1RJTUVPVVQuIElmIHRoZSB2YXJpYWJsZSBkb2VzCm5vdCBleGlzdCB0 aGVuIGEgZGVmYXVsdCB2YWx1ZSBvZiA2MHMgaXMgdXNlZC4KCldoZW5ldmVyIGEgZG9tYWluIGlz IGRlc3Ryb3llZCwgYSB0aW1lLXN0YW1wZWQgcmVjb3JkIHdpbGwgYmUgd3JpdHRlbiBpbnRvCmEg aGlzdG9yeSBmaWxlICgvdmFyL3J1bi94ZW4vZG9taWQtaGlzdG9yeSkuIFRvIGF2b2lkIHRoZSBo aXN0b3J5IGZpbGUKZ3Jvd2luZyB0b28gbGFyZ2UsIGFueSByZWNvcmRzIHdpdGggdGltZS1zdGFt cHMgdGhhdCBpbmRpY2F0ZSB0aGF0IHRoZQphZ2Ugb2YgYSBkb21pZCBoYXMgZXhjZWVkZWQgdGhl IHJlLXVzZSB0aW1lb3V0IHdpbGwgYWxzbyBiZSBwdXJnZWQuCgpBIG5ldyB1dGlsaXR5IGZ1bmN0 aW9uLCBsaWJ4bF9faXNfcmVjZW50X2RvbWlkKCksIGhhcyBiZWVuIGFkZGVkLiBUaGlzCmZ1bmN0 aW9uIHJlYWRzIHRoZSBzYW1lIGhpc3RvcnkgZmlsZSBjaGVja2luZyB3aGV0aGVyIGEgc3BlY2lm aWVkIGRvbWlkCmhhcyBhIHJlY29yZCB0aGF0IGRvZXMgbm90IGV4Y2VlZCB0aGUgcmUtdXNlIHRp bWVvdXQuIFNpbmNlIHRoaXMgdXRpbGl0eQpmdW5jdGlvbiBkb2VzIG5vdCB3cml0ZSB0byB0aGUg ZmlsZSwgbm8gcmVjb3JkcyBhcmUgYWN0dWFsbHkgcHVyZ2VkIGJ5IGl0LgoKTk9URTogVGhlIGhp c3RvcnkgZmlsZSBpcyBwdXJnZWQgb24gYm9vdCB0byBpdCBpcyBzYWZlIHRvIHVzZQogICAgICBD TE9DS19NT05PVE9OSUMgYXMgYSB0aW1lIHNvdXJjZS4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVy cmFudCA8cGR1cnJhbnRAYW1hem9uLmNvbT4KLS0tCkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tz b25AZXUuY2l0cml4LmNvbT4KQ2M6IFdlaSBMaXUgPHdsQHhlbi5vcmc+CkNjOiBBbnRob255IFBF UkFSRCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4KCnY0OgogLSBVc2UgbmV3IGdlbmVyYWxp c2VkIGxpYnhsX19mbG9jawogLSBEb24ndCByZWFkIGFuZCB3cml0ZSB0aGUgc2FtZSBmaWxlCiAt IFVzZSAncmVjZW50JyByYXRoZXIgdGhhbiAncmV0aXJlZCcKIC0gQWRkIGNvZGUgaW50byB4ZW4t aW5pdC1kb20wIHRvIGRlbGV0ZSBhbiBvbGQgaGlzdG9yeSBmaWxlIGF0IGJvb3QKCnYyOgogLSBO ZXcgaW4gdjIKLS0tCiB0b29scy9oZWxwZXJzL3hlbi1pbml0LWRvbTAuYyB8ICAzMCArKysrKysr KwogdG9vbHMvbGlieGwvbGlieGwuaCAgICAgICAgICAgfCAgIDIgKwogdG9vbHMvbGlieGwvbGli eGxfZG9tYWluLmMgICAgfCAxMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog dG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuYyAgfCAgMTAgKysrCiB0b29scy9saWJ4bC9saWJ4 bF9pbnRlcm5hbC5oICB8ICAxNCArKysrCiA1IGZpbGVzIGNoYW5nZWQsIDE5MSBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvdG9vbHMvaGVscGVycy94ZW4taW5pdC1kb20wLmMgYi90b29scy9o ZWxwZXJzL3hlbi1pbml0LWRvbTAuYwppbmRleCBhMWU1NzI5NDU4Li41NmY2OWFiNjZmIDEwMDY0 NAotLS0gYS90b29scy9oZWxwZXJzL3hlbi1pbml0LWRvbTAuYworKysgYi90b29scy9oZWxwZXJz L3hlbi1pbml0LWRvbTAuYwpAQCAtMTIsNiArMTIsMzIgQEAKICNkZWZpbmUgRE9NTkFNRV9QQVRI ICAgIi9sb2NhbC9kb21haW4vMC9uYW1lIgogI2RlZmluZSBET01JRF9QQVRIICAgICAiL2xvY2Fs L2RvbWFpbi8wL2RvbWlkIgogCitpbnQgY2xlYXJfZG9taWRfaGlzdG9yeSh2b2lkKQoreworICAg IGludCByYyA9IDE7CisgICAgeGVudG9vbGxvZ19sb2dnZXJfc3RkaW9zdHJlYW0gKmxvZ2dlcjsK KyAgICBsaWJ4bF9jdHggKmN0eDsKKworICAgIGxvZ2dlciA9IHh0bF9jcmVhdGVsb2dnZXJfc3Rk aW9zdHJlYW0oc3RkZXJyLCBYVExfRVJST1IsIDApOworICAgIGlmICghbG9nZ2VyKQorICAgICAg ICByZXR1cm4gMTsKKworICAgIGlmIChsaWJ4bF9jdHhfYWxsb2MoJmN0eCwgTElCWExfVkVSU0lP TiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICh4ZW50b29sbG9nX2xvZ2dlciAqKWxvZ2dl cikpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJjYW5ub3QgaW5pdCBsaWJ4bCBjb250ZXh0 XG4iKTsKKyAgICAgICAgZ290byBvdXRsb2c7CisgICAgfQorCisgICAgaWYgKCFsaWJ4bF9jbGVh cl9kb21pZF9oaXN0b3J5KGN0eCkpCisgICAgICAgIHJjID0gMDsKKworICAgIGxpYnhsX2N0eF9m cmVlKGN0eCk7CisKK291dGxvZzoKKyAgICB4dGxfbG9nZ2VyX2Rlc3Ryb3koKHhlbnRvb2xsb2df bG9nZ2VyICopbG9nZ2VyKTsKKyAgICByZXR1cm4gcmM7Cit9CisKIGludCBtYWluKGludCBhcmdj LCBjaGFyICoqYXJndikKIHsKICAgICBpbnQgcmM7CkBAIC03MCw2ICs5NiwxMCBAQCBpbnQgbWFp bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgaWYgKHJjKQogICAgICAgICBnb3RvIG91dDsK IAorICAgIHJjID0gY2xlYXJfZG9taWRfaGlzdG9yeSgpOworICAgIGlmIChyYykKKyAgICAgICAg Z290byBvdXQ7CisKICAgICAvKiBXcml0ZSB4ZW5zdG9yZSBlbnRyaWVzLiAqLwogICAgIGlmICgh eHNfd3JpdGUoeHNoLCBYQlRfTlVMTCwgRE9NSURfUEFUSCwgIjAiLCBzdHJsZW4oIjAiKSkpIHsK ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJjYW5ub3Qgc2V0IGRvbWlkIGZvciBEb20wXG4iKTsK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsLmggYi90b29scy9saWJ4bC9saWJ4bC5oCmlu ZGV4IDE4YzFhMmQ2YmYuLjFkMjM1ZWNiMWMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhs LmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGwuaApAQCAtMjY1Nyw2ICsyNjU3LDggQEAgc3RhdGlj IGlubGluZSBpbnQgbGlieGxfcWVtdV9tb25pdG9yX2NvbW1hbmRfMHgwNDEyMDAobGlieGxfY3R4 ICpjdHgsCiAKICNpbmNsdWRlIDxsaWJ4bF9ldmVudC5oPgogCitpbnQgbGlieGxfY2xlYXJfZG9t aWRfaGlzdG9yeShsaWJ4bF9jdHggKmN0eCk7CisKICNlbmRpZiAvKiBMSUJYTF9IICovCiAKIC8q CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kb21haW4uYyBiL3Rvb2xzL2xpYnhsL2xp YnhsX2RvbWFpbi5jCmluZGV4IDFiZGIxNjE1ZDguLmQ0MjRhODU0MmYgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhsL2xpYnhsX2RvbWFpbi5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbWFpbi5j CkBAIC0xMjY4LDYgKzEyNjgsMTQwIEBAIHN0YXRpYyB2b2lkIGRtX2Rlc3Ryb3lfY2IobGlieGxf X2VnYyAqZWdjLAogICAgIGxpYnhsX19kZXZpY2VzX2Rlc3Ryb3koZWdjLCAmZGlzLT5kcnMpOwog fQogCitzdGF0aWMgdW5zaWduZWQgaW50IGxpYnhsX19nZXRfZG9taWRfcmV1c2VfdGltZW91dCh2 b2lkKQoreworICAgIGNvbnN0IGNoYXIgKmVudl90aW1lb3V0ID0gZ2V0ZW52KCJMSUJYTF9ET01J RF9SRVVTRV9USU1FT1VUIik7CisKKyAgICByZXR1cm4gZW52X3RpbWVvdXQgPyBzdHJ0b2woZW52 X3RpbWVvdXQsIE5VTEwsIDApIDoKKyAgICAgICAgTElCWExfRE9NSURfUkVVU0VfVElNRU9VVDsK K30KKworY2hhciAqbGlieGxfX2RvbWlkX2hpc3RvcnlfcGF0aChsaWJ4bF9fZ2MgKmdjLCBjb25z dCBjaGFyICpzdWZmaXgpCit7CisgICAgcmV0dXJuIEdDU1BSSU5URigiJXMvZG9taWQtaGlzdG9y eSVzIiwgbGlieGxfX3J1bl9kaXJfcGF0aCgpLAorICAgICAgICAgICAgICAgICAgICAgc3VmZml4 ID86ICIiKTsKK30KKworaW50IGxpYnhsX2NsZWFyX2RvbWlkX2hpc3RvcnkobGlieGxfY3R4ICpj dHgpCit7CisgICAgR0NfSU5JVChjdHgpOworICAgIGNoYXIgKnBhdGg7CisgICAgaW50IHJjID0g RVJST1JfRkFJTDsKKworICAgIHBhdGggPSBsaWJ4bF9fZG9taWRfaGlzdG9yeV9wYXRoKGdjLCBO VUxMKTsKKyAgICBpZiAoIXBhdGgpCisgICAgICAgIGdvdG8gb3V0OworCisgICAgaWYgKHVubGlu ayhwYXRoKSA8IDAgJiYgZXJybm8gIT0gRU5PRU5UKSB7CisgICAgICAgIExPR0UoRVJST1IsICJm YWlsZWQgdG8gcmVtb3ZlICclcydcbiIsIHBhdGgpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9 CisKKyAgICByYyA9IDA7CisKK291dDoKKyAgICBHQ19GUkVFOworICAgIHJldHVybiByYzsKK30K Kworc3RhdGljIHZvaWQgbGlieGxfX21hcmtfZG9taWRfcmVjZW50KGxpYnhsX19nYyAqZ2MsIHVp bnQzMl90IGRvbWlkKQoreworICAgIGxvbmcgdGltZW91dCA9IGxpYnhsX19nZXRfZG9taWRfcmV1 c2VfdGltZW91dCgpOworICAgIGxpYnhsX19mbG9jayAqbG9jazsKKyAgICBjaGFyICpvbGQsICpu ZXc7CisgICAgRklMRSAqb2YgPSBOVUxMLCAqbmYgPSBOVUxMOworICAgIHN0cnVjdCB0aW1lc3Bl YyB0czsKKyAgICBjaGFyIGxpbmVbNjRdOworCisgICAgbG9jayA9IGxpYnhsX19sb2NrX2RvbWlk X2hpc3RvcnkoZ2MpOworICAgIGlmICghbG9jaykgeworICAgICAgICBMT0dFRChFUlJPUiwgZG9t aWQsICJmYWlsZWQgdG8gYWNxdWlyZSBsb2NrIik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0K KworICAgIG9sZCA9IGxpYnhsX19kb21pZF9oaXN0b3J5X3BhdGgoZ2MsIE5VTEwpOworICAgIG9m ID0gZm9wZW4ob2xkLCAiciIpOworICAgIGlmICghb2YgJiYgZXJybm8gIT0gRU5PRU5UKQorICAg ICAgICBMT0dFRChXQVJOLCBkb21pZCwgImZhaWxlZCB0byBvcGVuICclcyciLCBvbGQpOworCisg ICAgbmV3ID0gbGlieGxfX2RvbWlkX2hpc3RvcnlfcGF0aChnYywgIi5uZXciKTsKKyAgICBuZiA9 IGZvcGVuKG5ldywgImEiKTsKKyAgICBpZiAoIW5mKSB7CisgICAgICAgIExPR0VEKEVSUk9SLCBk b21pZCwgImZhaWxlZCB0byBvcGVuICclcyciLCBuZXcpOworICAgICAgICBnb3RvIG91dDsKKyAg ICB9CisKKyAgICBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJnRzKTsKKworICAgIHdo aWxlIChvZiAmJiBmZ2V0cyhsaW5lLCBzaXplb2YobGluZSksIG9mKSkgeworICAgICAgICB1bnNp Z25lZCBsb25nIHNlYzsKKyAgICAgICAgdW5zaWduZWQgaW50IGlnbm9yZWQ7CisKKyAgICAgICAg aWYgKHNzY2FuZihsaW5lLCAiJWx1ICV1IiwgJnNlYywgJmlnbm9yZWQpICE9IDIpIHsKKyAgICAg ICAgICAgIExPR0VEKEVSUk9SLCBkb21pZCwgImlnbm9yaW5nIG1hbGZvcm1lZCBsaW5lOiAlcyIs IGxpbmUpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAo dHMudHZfc2VjIC0gc2VjID4gdGltZW91dCkKKyAgICAgICAgICAgIGNvbnRpbnVlOyAvKiBJZ25v cmUgZXhwaXJlZCBlbnRyaWVzICovCisKKyAgICAgICAgaWYgKGZwdXRzKGxpbmUsIG5mKSA9PSBF T0YpIHsKKyAgICAgICAgICAgIExPR0VEKEVSUk9SLCBkb21pZCwgImZhaWxlZCB0byB3cml0ZSIp OworICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZnBy aW50ZihuZiwgIiVsdSAldVxuIiwgdHMudHZfc2VjLCBkb21pZCkgPCAwKSB7CisgICAgICAgIExP R0VEKEVSUk9SLCBkb21pZCwgImZhaWxlZCB0byB3cml0ZSIpOworICAgICAgICBnb3RvIG91dDsK KyAgICB9CisKKyAgICBmZmx1c2gobmYpOworCisgICAgaWYgKHJlbmFtZShuZXcsIG9sZCkgPCAw KQorICAgICAgICBMT0dFRChFUlJPUiwgZG9taWQsICJmYWlsZWQgdG8gcmVuYW1lICclcycgLT4g JyVzJyIsIG9sZCwgbmV3KTsKKworb3V0OgorICAgIGlmIChuZikgZmNsb3NlKG5mKTsKKyAgICBp ZiAob2YpIGZjbG9zZShvZik7CisgICAgaWYgKGxvY2spIGxpYnhsX191bmxvY2tfZmlsZShsb2Nr KTsKK30KKworYm9vbCBsaWJ4bF9faXNfZG9taWRfcmVjZW50KGxpYnhsX19nYyAqZ2MsIHVpbnQz Ml90IGRvbWlkKQoreworICAgIGxvbmcgdGltZW91dCA9IGxpYnhsX19nZXRfZG9taWRfcmV1c2Vf dGltZW91dCgpOworICAgIGJvb2wgcmVjZW50ID0gZmFsc2U7CisgICAgY29uc3QgY2hhciAqbmFt ZTsKKyAgICBGSUxFICpmOworICAgIHN0cnVjdCB0aW1lc3BlYyB0czsKKworICAgIG5hbWUgPSBH Q1NQUklOVEYoIiVzL2RvbWlkLWhpc3RvcnkiLCBsaWJ4bF9fcnVuX2Rpcl9wYXRoKCkpOworICAg IGYgPSBmb3BlbihuYW1lLCAiciIpOworICAgIGlmICghZikgeworICAgICAgICBpZiAoZXJybm8g IT0gRU5PRU5UKSBMT0dFRChXQVJOLCBkb21pZCwgImZhaWxlZCB0byBvcGVuICVzIiwgbmFtZSk7 CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBjbG9ja19nZXR0aW1lKENMT0NL X01PTk9UT05JQywgJnRzKTsKKworICAgIHdoaWxlICghZmVvZihmKSkgeworICAgICAgICB1bnNp Z25lZCBsb25nIHNlYzsKKyAgICAgICAgdW5zaWduZWQgaW50IGNoZWNrOworCisgICAgICAgIGlm IChmc2NhbmYoZiwgIiVsdSAldSIsICZzZWMsICZjaGVjaykgIT0gMikKKyAgICAgICAgICAgIGNv bnRpbnVlOworCisgICAgICAgIGlmIChjaGVjayA9PSBkb21pZCAmJiB0cy50dl9zZWMgLSBzZWMg PD0gdGltZW91dCkgeworICAgICAgICAgICAgcmVjZW50ID0gdHJ1ZTsKKyAgICAgICAgICAgIGJy ZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgZmNsb3NlKGYpOworCisgICAgcmV0dXJuIHJl Y2VudDsKK30KKwogc3RhdGljIHZvaWQgZGV2aWNlc19kZXN0cm95X2NiKGxpYnhsX19lZ2MgKmVn YywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fZGV2aWNlc19yZW1vdmVf c3RhdGUgKmRycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmMpCkBAIC0x MzMxLDYgKzE0NjUsNyBAQCBzdGF0aWMgdm9pZCBkZXZpY2VzX2Rlc3Ryb3lfY2IobGlieGxfX2Vn YyAqZWdjLAogICAgICAgICBpZiAoIWN0eC0+eGNoKSBnb3RvIGJhZGNoaWxkOwogCiAgICAgICAg IGlmICghZGlzLT5zb2Z0X3Jlc2V0KSB7CisgICAgICAgICAgICBsaWJ4bF9fbWFya19kb21pZF9y ZWNlbnQoZ2MsIGRvbWlkKTsKICAgICAgICAgICAgIHJjID0geGNfZG9tYWluX2Rlc3Ryb3koY3R4 LT54Y2gsIGRvbWlkKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHJjID0geGNfZG9t YWluX3BhdXNlKGN0eC0+eGNoLCBkb21pZCk7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4 bF9pbnRlcm5hbC5jIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuYwppbmRleCAyMTEyMzZk Yzk5Li5iYmQ0YzZjYmE5IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5j CisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmMKQEAgLTUwNCw2ICs1MDQsMTYgQEAg bGlieGxfX2Zsb2NrICpsaWJ4bF9fbG9ja19kb21haW5fdXNlcmRhdGEobGlieGxfX2djICpnYywg dWludDMyX3QgZG9taWQpCiAgICAgcmV0dXJuIGxvY2s7CiB9CiAKK2xpYnhsX19mbG9jayAqbGli eGxfX2xvY2tfZG9taWRfaGlzdG9yeShsaWJ4bF9fZ2MgKmdjKQoreworICAgIGNvbnN0IGNoYXIg KmxvY2tmaWxlOworCisgICAgbG9ja2ZpbGUgPSBsaWJ4bF9fZG9taWRfaGlzdG9yeV9wYXRoKGdj LCAiLmxvY2siKTsKKyAgICBpZiAoIWxvY2tmaWxlKSByZXR1cm4gTlVMTDsKKworICAgIHJldHVy biBsaWJ4bF9fbG9ja19maWxlKGdjLCBsb2NrZmlsZSk7Cit9CisKIGludCBsaWJ4bF9fZ2V0X2Rv bWFpbl9jb25maWd1cmF0aW9uKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2NvbmZpZyAqZF9jb25m aWcpCiB7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIGIvdG9vbHMv bGlieGwvbGlieGxfaW50ZXJuYWwuaAppbmRleCAzZmIzODIyMGU1Li5hNTBkNWEyOTM5IDEwMDY0 NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xp YnhsX2ludGVybmFsLmgKQEAgLTQyMzMsNiArNDIzMyw4IEBAIF9oaWRkZW4gdm9pZCBsaWJ4bF9f cmVtdXNfdGVhcmRvd24obGlieGxfX2VnYyAqZWdjLAogX2hpZGRlbiB2b2lkIGxpYnhsX19yZW11 c19yZXN0b3JlX3NldHVwKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9zdGF0ZSAqZGNzKTsKIAorX2hp ZGRlbiBjaGFyICpsaWJ4bF9fZG9taWRfaGlzdG9yeV9wYXRoKGxpYnhsX19nYyAqZ2MsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3VmZml4KTsK IAogLyoKICAqIENvbnZlbmllbmNlIG1hY3Jvcy4KQEAgLTQ2MzEsNiArNDYzMyw3IEBAIGxpYnhs X19mbG9jayAqbGlieGxfX2xvY2tfZmlsZShsaWJ4bF9fZ2MgKmdjLCBjb25zdCBjaGFyICpmaWxl bmFtZSk7CiB2b2lkIGxpYnhsX191bmxvY2tfZmlsZShsaWJ4bF9fZmxvY2sgKmxvY2spOwogCiBs aWJ4bF9fZmxvY2sgKmxpYnhsX19sb2NrX2RvbWFpbl91c2VyZGF0YShsaWJ4bF9fZ2MgKmdjLCB1 aW50MzJfdCBkb21pZCk7CitsaWJ4bF9fZmxvY2sgKmxpYnhsX19sb2NrX2RvbWlkX2hpc3Rvcnko bGlieGxfX2djICpnYyk7CiAKIC8qCiAgKiBSZXRyaWV2ZSAvIHN0b3JlIGRvbWFpbiBjb25maWd1 cmF0aW9uIGZyb20gLyB0byBsaWJ4bCBwcml2YXRlCkBAIC00NzY5LDYgKzQ3NzIsMTcgQEAgX2hp ZGRlbiBpbnQgbGlieGxfX2RvbWFpbl9wdmNvbnRyb2wobGlieGxfX2VnYyAqZWdjLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3hzd2FpdF9zdGF0ZSAqcHZjb250 cm9sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWRfdCBkb21pZCwg Y29uc3QgY2hhciAqY21kKTsKIAorLyoKKyAqIE1heGltdW0gbnVtYmVyIG9mIHNlY29uZHMgYWZ0 ZXIgZGVzY3RydWN0aW9uIHRoZW4gYSBkb21pZCByZW1haW5zCisgKiAncmVjZW50Jy4gUmVjZW50 IGRvbWlkcyBhcmUgbm90IGFsbG93ZWQgdG8gYmUgcmUtdXNlZC4gVGhpcyBjYW4gYmUKKyAqIG92 ZXJpZGRlbiwgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcywgYnkgdGhlIGVudmlyb25tZW50IHZhcmlh YmxlIG9mIHRoZQorICogc2FtZSBuYW1lLgorICovCisjZGVmaW5lIExJQlhMX0RPTUlEX1JFVVNF X1RJTUVPVVQgNjAKKworLyogQ2hlY2sgd2hldGhlciBhIGRvbWlkIGlzIHJlY2VudCAqLworYm9v bCBsaWJ4bF9faXNfZG9taWRfcmVjZW50KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkKTsK KwogI2VuZGlmCiAKIC8qCi0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz dGluZm8veGVuLWRldmVs