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,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 522E9C34047 for ; Wed, 19 Feb 2020 09:38:42 +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 182DC2464E for ; Wed, 19 Feb 2020 09:38:42 +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="DL8th15k" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 182DC2464E 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 1j4LoA-00081f-JP; Wed, 19 Feb 2020 09:38:18 +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 1j4Lo9-00081V-Qx for xen-devel@lists.xenproject.org; Wed, 19 Feb 2020 09:38:17 +0000 X-Inumbo-ID: 8e72d5ee-52fb-11ea-831b-12813bfff9fa Received: from smtp-fw-6002.amazon.com (unknown [52.95.49.90]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 8e72d5ee-52fb-11ea-831b-12813bfff9fa; Wed, 19 Feb 2020 09:38:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1582105097; x=1613641097; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=KgDugwK1H066Bhk84YAubijZr3a55GGl4cE9tezKyuQ=; b=DL8th15kffDHFLczyFkoYEerhpxO9TjyRvMCks4v/SxksOkfP/DjPcJp /4llDHDcLmhsAR8RySz5gosILrvNKmQm9d1XNyqljhIM2OWrqCHOMDjFs nf23fHErFqpogGJA+rxoAi6SagGTIyAlNdXmILlNLw7zn91C7Gro1rn+t M=; IronPort-SDR: NXqjEb5ye7ghgqh3CWCSGI4Nh5UBbkuO8w0/WDmM+SAARd/X8TCq4fxFy1XDK6kftxyHIRihqe gMfXknphcqzQ== X-IronPort-AV: E=Sophos;i="5.70,459,1574121600"; d="scan'208";a="17085159" Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-1a-715bee71.us-east-1.amazon.com) ([10.43.8.6]) by smtp-border-fw-out-6002.iad6.amazon.com with ESMTP; 19 Feb 2020 09:38:04 +0000 Received: from EX13MTAUEA002.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan2.iad.amazon.com [10.40.159.162]) by email-inbound-relay-1a-715bee71.us-east-1.amazon.com (Postfix) with ESMTPS id 591C9A31A1; Wed, 19 Feb 2020 09:38:03 +0000 (UTC) Received: from EX13D32EUB004.ant.amazon.com (10.43.166.212) by EX13MTAUEA002.ant.amazon.com (10.43.61.77) with Microsoft SMTP Server (TLS) id 15.0.1236.3; Wed, 19 Feb 2020 09:38:02 +0000 Received: from EX13MTAUEB002.ant.amazon.com (10.43.60.12) by EX13D32EUB004.ant.amazon.com (10.43.166.212) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 19 Feb 2020 09:38:01 +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; Wed, 19 Feb 2020 09:38:00 +0000 From: Paul Durrant To: Date: Wed, 19 Feb 2020 09:37:49 +0000 Message-ID: <20200219093754.2924-2-pdurrant@amazon.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200219093754.2924-1-pdurrant@amazon.com> References: <20200219093754.2924-1-pdurrant@amazon.com> MIME-Version: 1.0 Precedence: Bulk Subject: [Xen-devel] [PATCH v6 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 ZEBjaXRyaXguY29tPgoKdjY6CiBfIEFkZHJlc3NlZCBmdXJ0aGVyIGNvbW1lbnRzIGZyb20gSWFu Cgp2NToKIC0gUmUtd29yayBmaWxlIG1hbmlwdWxhdGlvbiBzb21lIG1vcmUKIC0gQWRkIG1vcmUg ZXJyb3IgY2hlY2tzCgp2NDoKIC0gVXNlIG5ldyBnZW5lcmFsaXNlZCBsaWJ4bF9fZmxvY2sKIC0g RG9uJ3QgcmVhZCBhbmQgd3JpdGUgdGhlIHNhbWUgZmlsZQogLSBVc2UgJ3JlY2VudCcgcmF0aGVy IHRoYW4gJ3JldGlyZWQnCiAtIEFkZCBjb2RlIGludG8geGVuLWluaXQtZG9tMCB0byBkZWxldGUg YW4gb2xkIGhpc3RvcnkgZmlsZSBhdCBib290Cgp2MjoKIC0gTmV3IGluIHYyCi0tLQogdG9vbHMv aGVscGVycy94ZW4taW5pdC1kb20wLmMgfCAgMzAgKysrKysKIHRvb2xzL2xpYnhsL2xpYnhsLmgg ICAgICAgICAgIHwgICA3ICsrCiB0b29scy9saWJ4bC9saWJ4bF9kb21haW4uYyAgICB8IDIyMiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0b29scy9saWJ4bC9saWJ4bF9pbnRl cm5hbC5jICB8ICAxMCArKwogdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCAgfCAgMTQgKysr CiA1IGZpbGVzIGNoYW5nZWQsIDI4MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdG9vbHMv aGVscGVycy94ZW4taW5pdC1kb20wLmMgYi90b29scy9oZWxwZXJzL3hlbi1pbml0LWRvbTAuYwpp bmRleCBhMWU1NzI5NDU4Li41NmY2OWFiNjZmIDEwMDY0NAotLS0gYS90b29scy9oZWxwZXJzL3hl bi1pbml0LWRvbTAuYworKysgYi90b29scy9oZWxwZXJzL3hlbi1pbml0LWRvbTAuYwpAQCAtMTIs NiArMTIsMzIgQEAKICNkZWZpbmUgRE9NTkFNRV9QQVRIICAgIi9sb2NhbC9kb21haW4vMC9uYW1l IgogI2RlZmluZSBET01JRF9QQVRIICAgICAiL2xvY2FsL2RvbWFpbi8wL2RvbWlkIgogCitpbnQg Y2xlYXJfZG9taWRfaGlzdG9yeSh2b2lkKQoreworICAgIGludCByYyA9IDE7CisgICAgeGVudG9v bGxvZ19sb2dnZXJfc3RkaW9zdHJlYW0gKmxvZ2dlcjsKKyAgICBsaWJ4bF9jdHggKmN0eDsKKwor ICAgIGxvZ2dlciA9IHh0bF9jcmVhdGVsb2dnZXJfc3RkaW9zdHJlYW0oc3RkZXJyLCBYVExfRVJS T1IsIDApOworICAgIGlmICghbG9nZ2VyKQorICAgICAgICByZXR1cm4gMTsKKworICAgIGlmIChs aWJ4bF9jdHhfYWxsb2MoJmN0eCwgTElCWExfVkVSU0lPTiwgMCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICh4ZW50b29sbG9nX2xvZ2dlciAqKWxvZ2dlcikpIHsKKyAgICAgICAgZnByaW50Zihz dGRlcnIsICJjYW5ub3QgaW5pdCBsaWJ4bCBjb250ZXh0XG4iKTsKKyAgICAgICAgZ290byBvdXRs b2c7CisgICAgfQorCisgICAgaWYgKCFsaWJ4bF9jbGVhcl9kb21pZF9oaXN0b3J5KGN0eCkpCisg ICAgICAgIHJjID0gMDsKKworICAgIGxpYnhsX2N0eF9mcmVlKGN0eCk7CisKK291dGxvZzoKKyAg ICB4dGxfbG9nZ2VyX2Rlc3Ryb3koKHhlbnRvb2xsb2dfbG9nZ2VyICopbG9nZ2VyKTsKKyAgICBy ZXR1cm4gcmM7Cit9CisKIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKICAgICBp bnQgcmM7CkBAIC03MCw2ICs5NiwxMCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAgICAgaWYgKHJjKQogICAgICAgICBnb3RvIG91dDsKIAorICAgIHJjID0gY2xlYXJfZG9taWRf aGlzdG9yeSgpOworICAgIGlmIChyYykKKyAgICAgICAgZ290byBvdXQ7CisKICAgICAvKiBXcml0 ZSB4ZW5zdG9yZSBlbnRyaWVzLiAqLwogICAgIGlmICgheHNfd3JpdGUoeHNoLCBYQlRfTlVMTCwg RE9NSURfUEFUSCwgIjAiLCBzdHJsZW4oIjAiKSkpIHsKICAgICAgICAgZnByaW50ZihzdGRlcnIs ICJjYW5ub3Qgc2V0IGRvbWlkIGZvciBEb20wXG4iKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhs L2xpYnhsLmggYi90b29scy9saWJ4bC9saWJ4bC5oCmluZGV4IGZkZTg1NDg4NDcuLjgwYWUxMTBh NTIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsLmgKKysrIGIvdG9vbHMvbGlieGwvbGli eGwuaApAQCAtMjY3OSw2ICsyNjc5LDEzIEBAIHN0YXRpYyBpbmxpbmUgaW50IGxpYnhsX3FlbXVf bW9uaXRvcl9jb21tYW5kXzB4MDQxMjAwKGxpYnhsX2N0eCAqY3R4LAogCiAjaW5jbHVkZSA8bGli eGxfZXZlbnQuaD4KIAorLyoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgZm9yIHVzZSBvbmx5IGR1cmlu ZyBob3N0IGluaXRpYWxpc2F0aW9uLiBJZiBpdCBpcworICogaW52b2tlZCBvbiBhIGhvc3Qgd2l0 aCBydW5uaW5nIGRvbWFpbnMsIG9yIGNvbmN1cnJlbnQgbGlieGwKKyAqIHByb2Nlc3NlcyB0aGVu IHRoZSBzeXN0ZW0gbWF5IG1hbGZ1bnRpb24uCisgKi8KK2ludCBsaWJ4bF9jbGVhcl9kb21pZF9o aXN0b3J5KGxpYnhsX2N0eCAqY3R4KTsKKwogI2VuZGlmIC8qIExJQlhMX0ggKi8KIAogLyoKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbWFpbi5jIGIvdG9vbHMvbGlieGwvbGlieGxf ZG9tYWluLmMKaW5kZXggOTczZmMxNDM0ZC4uNTNmOTBjYjU1NSAxMDA2NDQKLS0tIGEvdG9vbHMv bGlieGwvbGlieGxfZG9tYWluLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tYWluLmMKQEAg LTEyNjgsNiArMTI2OCwyMjYgQEAgc3RhdGljIHZvaWQgZG1fZGVzdHJveV9jYihsaWJ4bF9fZWdj ICplZ2MsCiAgICAgbGlieGxfX2RldmljZXNfZGVzdHJveShlZ2MsICZkaXMtPmRycyk7CiB9CiAK K3N0YXRpYyB1bnNpZ25lZCBpbnQgbGlieGxfX2dldF9kb21pZF9yZXVzZV90aW1lb3V0KHZvaWQp Cit7CisgICAgY29uc3QgY2hhciAqZW52X3RpbWVvdXQgPSBnZXRlbnYoIkxJQlhMX0RPTUlEX1JF VVNFX1RJTUVPVVQiKTsKKworICAgIHJldHVybiBlbnZfdGltZW91dCA/IHN0cnRvbChlbnZfdGlt ZW91dCwgTlVMTCwgMCkgOgorICAgICAgICBMSUJYTF9ET01JRF9SRVVTRV9USU1FT1VUOworfQor CitjaGFyICpsaWJ4bF9fZG9taWRfaGlzdG9yeV9wYXRoKGxpYnhsX19nYyAqZ2MsIGNvbnN0IGNo YXIgKnN1ZmZpeCkKK3sKKyAgICByZXR1cm4gR0NTUFJJTlRGKCIlcy9kb21pZC1oaXN0b3J5JXMi LCBsaWJ4bF9fcnVuX2Rpcl9wYXRoKCksCisgICAgICAgICAgICAgICAgICAgICBzdWZmaXggPzog IiIpOworfQorCitpbnQgbGlieGxfY2xlYXJfZG9taWRfaGlzdG9yeShsaWJ4bF9jdHggKmN0eCkK K3sKKyAgICBHQ19JTklUKGN0eCk7CisgICAgY2hhciAqcGF0aDsKKyAgICBpbnQgcmMgPSBFUlJP Ul9GQUlMOworCisgICAgcGF0aCA9IGxpYnhsX19kb21pZF9oaXN0b3J5X3BhdGgoZ2MsIE5VTEwp OworICAgIGlmICghcGF0aCkKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICBpZiAodW5saW5rKHBh dGgpIDwgMCAmJiBlcnJubyAhPSBFTk9FTlQpIHsKKyAgICAgICAgTE9HRShFUlJPUiwgImZhaWxl ZCB0byByZW1vdmUgJyVzJ1xuIiwgcGF0aCk7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKwor ICAgIHJjID0gMDsKKworb3V0OgorICAgIEdDX0ZSRUU7CisgICAgcmV0dXJuIHJjOworfQorCitz dGF0aWMgaW50IGxpYnhsX19yZWFkX3JlY2VudChsaWJ4bF9fZ2MgKmdjLCBGSUxFICpmLCB1bnNp Z25lZCBsb25nICpzZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgKmRvbWlkKQoreworICAgIGlmICghZikgeworICAgICAgICAqZG9taWQgPSBJTlZBTElEX0RP TUlEOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBmb3IgKDs7KSB7CisgICAgICAg IGludCBuID0gZnNjYW5mKGYsICIlbHUgJXUiLCBzZWMsIGRvbWlkKTsKKworICAgICAgICBpZiAo biA9PSBFT0YpIHsKKyAgICAgICAgICAgIGlmIChmZXJyb3IoZikpIHsKKyAgICAgICAgICAgICAg ICBMT0dFKEVSUk9SLCAiZmFpbGVkIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIEVSUk9SX0ZB SUw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICpkb21pZCA9IElOVkFMSURfRE9NSUQ7 CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfSBlbHNlIGlmIChuID09IDIgJiYgbGlieGxf ZG9taWRfdmFsaWRfZ3Vlc3QoKmRvbWlkKSkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg IH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBsaWJ4bF9fd3JpdGVf cmVjZW50KGxpYnhsX19nYyAqZ2MsIEZJTEUgKmYsIHVuc2lnbmVkIGxvbmcgc2VjLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBkb21pZCkKK3sKKyAgICBpbnQg biA9IGZwcmludGYoZiwgIiVsdSAldVxuIiwgc2VjLCBkb21pZCk7CisKKyAgICBpZiAobiA+PSAw KSByZXR1cm4gMDsKKworICAgIExPR0UoRVJST1IsICJmYWlsZWQiKTsKKyAgICByZXR1cm4gRVJS T1JfRkFJTDsKK30KKworc3RhdGljIGludCBsaWJ4bF9fb3Blbl9kb21pZF9oaXN0b3J5KGxpYnhs X19nYyAqZ2MsIEZJTEUgKipmKQoreworICAgIGNoYXIgKnBhdGggPSBsaWJ4bF9fZG9taWRfaGlz dG9yeV9wYXRoKGdjLCBOVUxMKTsKKworICAgICpmID0gZm9wZW4ocGF0aCwgInIiKTsKKyAgICBp ZiAoKmYgfHwgZXJybm8gPT0gRU5PRU5UKSByZXR1cm4gMDsKKworICAgIExPR0UoRVJST1IsICJm YWlsZWQgdG8gb3BlbiAnJXMnIiwgcGF0aCk7CisgICAgcmV0dXJuIEVSUk9SX0ZBSUw7Cit9CisK K3N0YXRpYyBpbnQgbGlieGxfX2Nsb3NlX2RvbWlkX2hpc3RvcnkobGlieGxfX2djICpnYywgRklM RSAqKmYpCit7CisgICAgaW50IHJldDsKKworICAgIGlmICghKmYpIHJldHVybiAwOworCisgICAg cmV0ID0gZmNsb3NlKCpmKTsKKyAgICAqZiA9IE5VTEw7CisgICAgaWYgKCFyZXQpIHJldHVybiAw OworCisgICAgTE9HRShFUlJPUiwgImZhaWxlZCIpOworICAgIHJldHVybiBFUlJPUl9GQUlMOwor fQorCitzdGF0aWMgaW50IGxpYnhsX19yZXBsYWNlX2RvbWlkX2hpc3RvcnkobGlieGxfX2djICpn YywgY2hhciAqbmV3KQoreworICAgIGNoYXIgKnBhdGggPSBsaWJ4bF9fZG9taWRfaGlzdG9yeV9w YXRoKGdjLCBOVUxMKTsKKyAgICBpbnQgcmV0ID0gcmVuYW1lKG5ldywgcGF0aCk7CisKKyAgICBp ZiAoIXJldCkgcmV0dXJuIDA7CisKKyAgICBMT0dFKEVSUk9SLCAiZmFpbGVkIHRvIHJlbmFtZSAn JXMnIC0+ICclcyciLCBuZXcsIHBhdGgpOworICAgIHJldHVybiBFUlJPUl9GQUlMOworfQorCitz dGF0aWMgaW50IGxpYnhsX19tYXJrX2RvbWlkX3JlY2VudChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJf dCBkb21pZCkKK3sKKyAgICBsb25nIHRpbWVvdXQgPSBsaWJ4bF9fZ2V0X2RvbWlkX3JldXNlX3Rp bWVvdXQoKTsKKyAgICBsaWJ4bF9fZmxvY2sgKmxvY2s7CisgICAgY2hhciAqbmV3OworICAgIEZJ TEUgKm9mID0gTlVMTCwgKm5mID0gTlVMTDsKKyAgICBzdHJ1Y3QgdGltZXNwZWMgdHM7CisgICAg aW50IHJldCwgcmM7CisKKyAgICBsb2NrID0gbGlieGxfX2xvY2tfZG9taWRfaGlzdG9yeShnYyk7 CisgICAgaWYgKCFsb2NrKSB7CisgICAgICAgIExPR0VEKEVSUk9SLCBkb21pZCwgImZhaWxlZCB0 byBhY3F1aXJlIGxvY2siKTsKKyAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAgICBnb3Rv IG91dDsKKyAgICB9CisKKyAgICByYyA9IGxpYnhsX19vcGVuX2RvbWlkX2hpc3RvcnkoZ2MsICZv Zik7CisgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAgIG5ldyA9IGxpYnhsX19kb21pZF9oaXN0 b3J5X3BhdGgoZ2MsICIubmV3Iik7CisgICAgbmYgPSBmb3BlbihuZXcsICJhIik7CisgICAgaWYg KCFuZikgeworICAgICAgICBMT0dFRChFUlJPUiwgZG9taWQsICJmYWlsZWQgdG8gb3BlbiAnJXMn IiwgbmV3KTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgaWYgKGNsb2NrX2dldHRp bWUoQ0xPQ0tfTU9OT1RPTklDLCAmdHMpKSB7CisgICAgICAgIExPR0VEKEVSUk9SLCBkb21pZCwg ImZhaWxlZCB0byBnZXQgdGltZSIpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICBm b3IgKDs7KSB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgc2VjOworICAgICAgICB1bnNpZ25lZCBp bnQgdmFsOworCisgICAgICAgIHJjID0gbGlieGxfX3JlYWRfcmVjZW50KGdjLCBvZiwgJnNlYywg JnZhbCk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICAgICAgaWYgKHZhbCA9PSBJ TlZBTElEX0RPTUlEKSAvKiBFT0YgKi8KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGlm ICh0cy50dl9zZWMgLSBzZWMgPiB0aW1lb3V0KQorICAgICAgICAgICAgY29udGludWU7IC8qIEln bm9yZSBleHBpcmVkIGVudHJpZXMgKi8KKworICAgICAgICByYyA9IGxpYnhsX193cml0ZV9yZWNl bnQoZ2MsIG5mLCBzZWMsIHZhbCk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisgICAgfQor CisgICAgcmMgPSBsaWJ4bF9fd3JpdGVfcmVjZW50KGdjLCBuZiwgdHMudHZfc2VjLCBkb21pZCk7 CisgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAgIHJldCA9IGZjbG9zZShuZik7CisgICAgbmYg PSBOVUxMOworICAgIGlmIChyZXQgPT0gRU9GKSB7CisgICAgICAgIExPR0VEKEVSUk9SLCBkb21p ZCwgImZhaWxlZCB0byBjbG9zZSAnJXMnIiwgbmV3KTsKKyAgICAgICAgZ290byBvdXQ7CisgICAg fQorCisgICAgcmMgPSBsaWJ4bF9fY2xvc2VfZG9taWRfaGlzdG9yeShnYywgJm9mKTsKKyAgICBp ZiAocmMpIGdvdG8gb3V0OworCisgICAgcmMgPSBsaWJ4bF9fcmVwbGFjZV9kb21pZF9oaXN0b3J5 KGdjLCBuZXcpOworCitvdXQ6CisgICAgaWYgKG5mKSBmY2xvc2UobmYpOworICAgIGlmIChvZikg ZmNsb3NlKG9mKTsKKyAgICBpZiAobG9jaykgbGlieGxfX3VubG9ja19maWxlKGxvY2spOworCisg ICAgcmV0dXJuIHJjOworfQorCitpbnQgbGlieGxfX2lzX2RvbWlkX3JlY2VudChsaWJ4bF9fZ2Mg KmdjLCB1aW50MzJfdCBkb21pZCwgYm9vbCAqcmVjZW50KQoreworICAgIGxvbmcgdGltZW91dCA9 IGxpYnhsX19nZXRfZG9taWRfcmV1c2VfdGltZW91dCgpOworICAgIEZJTEUgKmY7CisgICAgc3Ry dWN0IHRpbWVzcGVjIHRzOworICAgIGludCByYzsKKworICAgIHJjID0gbGlieGxfX29wZW5fZG9t aWRfaGlzdG9yeShnYywgJmYpOworICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICBpZiAoY2xv Y2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZ0cykpIHsKKyAgICAgICAgTE9HRUQoRVJST1Is IGRvbWlkLCAiZmFpbGVkIHRvIGdldCB0aW1lIik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0K KworICAgICpyZWNlbnQgPSBmYWxzZTsKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIHVuc2lnbmVk IGxvbmcgc2VjOworICAgICAgICB1bnNpZ25lZCBpbnQgdmFsOworCisgICAgICAgIHJjID0gbGli eGxfX3JlYWRfcmVjZW50KGdjLCBmLCAmc2VjLCAmdmFsKTsKKyAgICAgICAgaWYgKHJjKSBnb3Rv IG91dDsKKworICAgICAgICBpZiAodmFsID09IElOVkFMSURfRE9NSUQpIC8qIEVPRiAqLworICAg ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgaWYgKHZhbCA9PSBkb21pZCAmJiB0cy50dl9zZWMg LSBzZWMgPD0gdGltZW91dCkgeworICAgICAgICAgICAgKnJlY2VudCA9IHRydWU7CisgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJjID0gbGlieGxfX2Nsb3NlX2Rv bWlkX2hpc3RvcnkoZ2MsICZmKTsKKworb3V0OgorICAgIGlmIChmKSBmY2xvc2UoZik7CisgICAg cmV0dXJuIHJjOworfQorCiBzdGF0aWMgdm9pZCBkZXZpY2VzX2Rlc3Ryb3lfY2IobGlieGxfX2Vn YyAqZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19kZXZpY2VzX3Jl bW92ZV9zdGF0ZSAqZHJzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByYykK QEAgLTEzMzEsNiArMTU1MSw4IEBAIHN0YXRpYyB2b2lkIGRldmljZXNfZGVzdHJveV9jYihsaWJ4 bF9fZWdjICplZ2MsCiAgICAgICAgIGlmICghY3R4LT54Y2gpIGdvdG8gYmFkY2hpbGQ7CiAKICAg ICAgICAgaWYgKCFkaXMtPnNvZnRfcmVzZXQpIHsKKyAgICAgICAgICAgIHJjID0gbGlieGxfX21h cmtfZG9taWRfcmVjZW50KGdjLCBkb21pZCk7CisgICAgICAgICAgICBpZiAocmMpIGdvdG8gYmFk Y2hpbGQ7CiAgICAgICAgICAgICByYyA9IHhjX2RvbWFpbl9kZXN0cm95KGN0eC0+eGNoLCBkb21p ZCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICByYyA9IHhjX2RvbWFpbl9wYXVzZShj dHgtPnhjaCwgZG9taWQpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwu YyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmMKaW5kZXggMjExMjM2ZGM5OS4uYmJkNGM2 Y2JhOSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuYworKysgYi90b29s cy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5jCkBAIC01MDQsNiArNTA0LDE2IEBAIGxpYnhsX19mbG9j ayAqbGlieGxfX2xvY2tfZG9tYWluX3VzZXJkYXRhKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRv bWlkKQogICAgIHJldHVybiBsb2NrOwogfQogCitsaWJ4bF9fZmxvY2sgKmxpYnhsX19sb2NrX2Rv bWlkX2hpc3RvcnkobGlieGxfX2djICpnYykKK3sKKyAgICBjb25zdCBjaGFyICpsb2NrZmlsZTsK KworICAgIGxvY2tmaWxlID0gbGlieGxfX2RvbWlkX2hpc3RvcnlfcGF0aChnYywgIi5sb2NrIik7 CisgICAgaWYgKCFsb2NrZmlsZSkgcmV0dXJuIE5VTEw7CisKKyAgICByZXR1cm4gbGlieGxfX2xv Y2tfZmlsZShnYywgbG9ja2ZpbGUpOworfQorCiBpbnQgbGlieGxfX2dldF9kb21haW5fY29uZmln dXJhdGlvbihsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmlnKQogewpkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhs X2ludGVybmFsLmgKaW5kZXggNDkzNjQ0NjA2OS4uNDNlNTg4NWQxZSAxMDA2NDQKLS0tIGEvdG9v bHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5h bC5oCkBAIC00MjYzLDYgKzQyNjMsOCBAQCBfaGlkZGVuIHZvaWQgbGlieGxfX3JlbXVzX3RlYXJk b3duKGxpYnhsX19lZ2MgKmVnYywKIF9oaWRkZW4gdm9pZCBsaWJ4bF9fcmVtdXNfcmVzdG9yZV9z ZXR1cChsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGlieGxfX2RvbWFpbl9jcmVhdGVfc3RhdGUgKmRjcyk7CiAKK19oaWRkZW4gY2hhciAq bGlieGxfX2RvbWlkX2hpc3RvcnlfcGF0aChsaWJ4bF9fZ2MgKmdjLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN1ZmZpeCk7CiAKIC8qCiAgKiBD b252ZW5pZW5jZSBtYWNyb3MuCkBAIC00NjYxLDYgKzQ2NjMsNyBAQCBsaWJ4bF9fZmxvY2sgKmxp YnhsX19sb2NrX2ZpbGUobGlieGxfX2djICpnYywgY29uc3QgY2hhciAqZmlsZW5hbWUpOwogdm9p ZCBsaWJ4bF9fdW5sb2NrX2ZpbGUobGlieGxfX2Zsb2NrICpsb2NrKTsKIAogbGlieGxfX2Zsb2Nr ICpsaWJ4bF9fbG9ja19kb21haW5fdXNlcmRhdGEobGlieGxfX2djICpnYywgdWludDMyX3QgZG9t aWQpOworbGlieGxfX2Zsb2NrICpsaWJ4bF9fbG9ja19kb21pZF9oaXN0b3J5KGxpYnhsX19nYyAq Z2MpOwogCiAvKgogICogUmV0cmlldmUgLyBzdG9yZSBkb21haW4gY29uZmlndXJhdGlvbiBmcm9t IC8gdG8gbGlieGwgcHJpdmF0ZQpAQCAtNDc5OSw2ICs0ODAyLDE3IEBAIF9oaWRkZW4gaW50IGxp YnhsX19kb21haW5fcHZjb250cm9sKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYnhsX194c3dhaXRfc3RhdGUgKnB2Y29udHJvbCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgZG9taWQsIGNvbnN0IGNoYXIg KmNtZCk7CiAKKy8qCisgKiBNYXhpbXVtIG51bWJlciBvZiBzZWNvbmRzIGFmdGVyIGRlc2N0cnVj dGlvbiB0aGVuIGEgZG9taWQgcmVtYWlucworICogJ3JlY2VudCcuIFJlY2VudCBkb21pZHMgYXJl IG5vdCBhbGxvd2VkIHRvIGJlIHJlLXVzZWQuIFRoaXMgY2FuIGJlCisgKiBvdmVyaWRkZW4sIGZv ciBkZWJ1Z2dpbmcgcHVycG9zZXMsIGJ5IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBvZiB0aGUK KyAqIHNhbWUgbmFtZS4KKyAqLworI2RlZmluZSBMSUJYTF9ET01JRF9SRVVTRV9USU1FT1VUIDYw CisKKy8qIENoZWNrIHdoZXRoZXIgYSBkb21pZCBpcyByZWNlbnQgKi8KK2ludCBsaWJ4bF9faXNf ZG9taWRfcmVjZW50KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLCBib29sICpyZWNlbnQp OworCiAjZW5kaWYKIAogLyoKLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s aXN0aW5mby94ZW4tZGV2ZWw=