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=-9.8 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 68141C433FF for ; Mon, 29 Jul 2019 12:12:33 +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 395F8206B8 for ; Mon, 29 Jul 2019 12:12:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 395F8206B8 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.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 1hs4Vi-0006dZ-2w; Mon, 29 Jul 2019 12:12:14 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hs4Vh-0006cg-1W for xen-devel@lists.xenproject.org; Mon, 29 Jul 2019 12:12:13 +0000 X-Inumbo-ID: 17b824e4-b1fa-11e9-8980-bc764e045a96 Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 17b824e4-b1fa-11e9-8980-bc764e045a96; Mon, 29 Jul 2019 12:12:10 +0000 (UTC) Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=andrew.cooper3@citrix.com; spf=Pass smtp.mailfrom=Andrew.Cooper3@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender authenticity information available from domain of andrew.cooper3@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="andrew.cooper3@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa6.hc3370-68.iphmx.com: domain of Andrew.Cooper3@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="Andrew.Cooper3@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: rXCzYAjwYizDDTkz6FnzAG/UCfIsAm3iRY9iWj+g0iXQnTkp2dtZoQ5PGxZqpxYbdH1yOjpQNN 8zw/JT1wErd+RpwZbkspNiXdf7JArMzEhlwUwsTg7onpzfAGHXEIhNkNR+YLqz4x2robemVN0e ZjXt0fC55KAHI0wKjUFnLh3phmP2IKmuyJ7wuvDrtOZJ+T8P9JR7FNb5IKeO0n3h2s6Ekwx2z3 3hsvhe6hQmk8cNYvMhBrzhYBYGBU1YCkX+akSKP/DCB547cm8WzgDsC1JYG8aE4lG+wAcPq7+W g20= X-SBRS: 2.7 X-MesageID: 3672663 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,322,1559534400"; d="scan'208";a="3672663" From: Andrew Cooper To: Xen-devel Date: Mon, 29 Jul 2019 13:11:56 +0100 Message-ID: <20190729121204.13559-3-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190729121204.13559-1-andrew.cooper3@citrix.com> References: <20190729121204.13559-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v3 02/10] xen/bitmap: Drop {bitmap, cpumask, nodes}_shift_{left, right}() 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: Stefano Stabellini , Wei Liu , Andrew Cooper , Julien Grall , Jan Beulich , Volodymyr Babchuk , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" VGhlc2Ugb3BlcmF0aW9ucyBoYXZlIG5ldmVyIGJlZW4gdXNlZCBpbiBYZW4gc2luY2UgdGhlaXIg aW50cm9kdWN0aW9uLCBhbmQgaXQKZG9lc24ndCBzZWVtIGxpa2VseSB0aGF0IHRoZXkgd2lsbCBp biB0aGUgZnV0dXJlLgoKQmxvYXQtby1tZXRlciByZXBvcnRzIHRoYXQgdGhleSBhcmVuJ3QgdGhl IHNtYWxsZWQgd2hlbiBjb21waWxlZCwgZWl0aGVyLgoKICBhZGQvcmVtb3ZlOiAwLzIgZ3Jvdy9z aHJpbms6IDAvMCB1cC9kb3duOiAwLy04MTQgKC04MTQpCiAgRnVuY3Rpb24gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2xkICAgICBuZXcgICBkZWx0YQogIF9fYml0bWFwX3No aWZ0X2xlZnQgICAgICAgICAgICAgICAgICAgICAgICAgIDM2NiAgICAgICAtICAgIC0zNjYKICBf X2JpdG1hcF9zaGlmdF9yaWdodCAgICAgICAgICAgICAgICAgICAgICAgICA0NDggICAgICAgLSAg ICAtNDQ4CiAgVG90YWw6IEJlZm9yZT0zMzIzNzMwLCBBZnRlcj0zMzIyOTE2LCBjaGcgLTAuMDIl CgpTdWdnZXN0ZWQtYnk6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KU2lnbmVkLW9m Zi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBK YW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+CkNDOiBXZWkgTGl1IDx3bEB4ZW4ub3JnPgpD QzogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CkNDOiBTdGVmYW5vIFN0 YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNDOiBKdWxpZW4gR3JhbGwgPGp1bGll bi5ncmFsbEBhcm0uY29tPgpDQzogVm9sb2R5bXlyIEJhYmNodWsgPFZvbG9keW15cl9CYWJjaHVr QGVwYW0uY29tPgoKdjM6CiAqIE5ldwotLS0KIHhlbi9jb21tb24vYml0bWFwLmMgICAgICAgIHwg ODggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2lu Y2x1ZGUveGVuL2JpdG1hcC5oICAgfCAyMiAtLS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL3hlbi9j cHVtYXNrLmggIHwgMTUgLS0tLS0tLS0KIHhlbi9pbmNsdWRlL3hlbi9ub2RlbWFzay5oIHwgMTkg LS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxNDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEveGVuL2NvbW1vbi9iaXRtYXAuYyBiL3hlbi9jb21tb24vYml0bWFwLmMKaW5kZXggMzRkZTM4 Nzg4MC4uZmQwNzBiZWU5NyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9iaXRtYXAuYworKysgYi94 ZW4vY29tbW9uL2JpdG1hcC5jCkBAIC0xMDksOTQgKzEwOSw2IEBAIHZvaWQgX19iaXRtYXBfY29t cGxlbWVudCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywgaW50 IGJpdHMpCiB9CiBFWFBPUlRfU1lNQk9MKF9fYml0bWFwX2NvbXBsZW1lbnQpOwogCi0vKgotICog X19iaXRtYXBfc2hpZnRfcmlnaHQgLSBsb2dpY2FsIHJpZ2h0IHNoaWZ0IG9mIHRoZSBiaXRzIGlu IGEgYml0bWFwCi0gKiAgIEBkc3QgLSBkZXN0aW5hdGlvbiBiaXRtYXAKLSAqICAgQHNyYyAtIHNv dXJjZSBiaXRtYXAKLSAqICAgQG5iaXRzIC0gc2hpZnQgYnkgdGhpcyBtYW55IGJpdHMKLSAqICAg QGJpdHMgLSBiaXRtYXAgc2l6ZSwgaW4gYml0cwotICoKLSAqIFNoaWZ0aW5nIHJpZ2h0IChkaXZp ZGluZykgbWVhbnMgbW92aW5nIGJpdHMgaW4gdGhlIE1TIC0+IExTIGJpdAotICogZGlyZWN0aW9u LiAgWmVyb3MgYXJlIGZlZCBpbnRvIHRoZSB2YWNhdGVkIE1TIHBvc2l0aW9ucyBhbmQgdGhlCi0g KiBMUyBiaXRzIHNoaWZ0ZWQgb2ZmIHRoZSBib3R0b20gYXJlIGxvc3QuCi0gKi8KLXZvaWQgX19i aXRtYXBfc2hpZnRfcmlnaHQodW5zaWduZWQgbG9uZyAqZHN0LAotCQkJY29uc3QgdW5zaWduZWQg bG9uZyAqc3JjLCBpbnQgc2hpZnQsIGludCBiaXRzKQotewotCWludCBrLCBsaW0gPSBCSVRTX1RP X0xPTkdTKGJpdHMpLCBsZWZ0ID0gYml0cyAlIEJJVFNfUEVSX0xPTkc7Ci0JaW50IG9mZiA9IHNo aWZ0L0JJVFNfUEVSX0xPTkcsIHJlbSA9IHNoaWZ0ICUgQklUU19QRVJfTE9ORzsKLQl1bnNpZ25l ZCBsb25nIG1hc2sgPSAoMVVMIDw8IGxlZnQpIC0gMTsKLQlmb3IgKGsgPSAwOyBvZmYgKyBrIDwg bGltOyArK2spIHsKLQkJdW5zaWduZWQgbG9uZyB1cHBlciwgbG93ZXI7Ci0KLQkJLyoKLQkJICog SWYgc2hpZnQgaXMgbm90IHdvcmQgYWxpZ25lZCwgdGFrZSBsb3dlciByZW0gYml0cyBvZgotCQkg KiB3b3JkIGFib3ZlIGFuZCBtYWtlIHRoZW0gdGhlIHRvcCByZW0gYml0cyBvZiByZXN1bHQuCi0J CSAqLwotCQlpZiAoIXJlbSB8fCBvZmYgKyBrICsgMSA+PSBsaW0pCi0JCQl1cHBlciA9IDA7Ci0J CWVsc2UgewotCQkJdXBwZXIgPSBzcmNbb2ZmICsgayArIDFdOwotCQkJaWYgKG9mZiArIGsgKyAx ID09IGxpbSAtIDEgJiYgbGVmdCkKLQkJCQl1cHBlciAmPSBtYXNrOwotCQl9Ci0JCWxvd2VyID0g c3JjW29mZiArIGtdOwotCQlpZiAobGVmdCAmJiBvZmYgKyBrID09IGxpbSAtIDEpCi0JCQlsb3dl ciAmPSBtYXNrOwotCQlkc3Rba10gPSByZW0KLQkJICAgICAgICAgPyAodXBwZXIgPDwgKEJJVFNf UEVSX0xPTkcgLSByZW0pKSB8IChsb3dlciA+PiByZW0pCi0JCSAgICAgICAgIDogbG93ZXI7Ci0J CWlmIChsZWZ0ICYmIGsgPT0gbGltIC0gMSkKLQkJCWRzdFtrXSAmPSBtYXNrOwotCX0KLQlpZiAo b2ZmKQotCQltZW1zZXQoJmRzdFtsaW0gLSBvZmZdLCAwLCBvZmYqc2l6ZW9mKHVuc2lnbmVkIGxv bmcpKTsKLX0KLUVYUE9SVF9TWU1CT0woX19iaXRtYXBfc2hpZnRfcmlnaHQpOwotCi0KLS8qCi0g KiBfX2JpdG1hcF9zaGlmdF9sZWZ0IC0gbG9naWNhbCBsZWZ0IHNoaWZ0IG9mIHRoZSBiaXRzIGlu IGEgYml0bWFwCi0gKiAgIEBkc3QgLSBkZXN0aW5hdGlvbiBiaXRtYXAKLSAqICAgQHNyYyAtIHNv dXJjZSBiaXRtYXAKLSAqICAgQG5iaXRzIC0gc2hpZnQgYnkgdGhpcyBtYW55IGJpdHMKLSAqICAg QGJpdHMgLSBiaXRtYXAgc2l6ZSwgaW4gYml0cwotICoKLSAqIFNoaWZ0aW5nIGxlZnQgKG11bHRp cGx5aW5nKSBtZWFucyBtb3ZpbmcgYml0cyBpbiB0aGUgTFMgLT4gTVMKLSAqIGRpcmVjdGlvbi4g IFplcm9zIGFyZSBmZWQgaW50byB0aGUgdmFjYXRlZCBMUyBiaXQgcG9zaXRpb25zCi0gKiBhbmQg dGhvc2UgTVMgYml0cyBzaGlmdGVkIG9mZiB0aGUgdG9wIGFyZSBsb3N0LgotICovCi0KLXZvaWQg X19iaXRtYXBfc2hpZnRfbGVmdCh1bnNpZ25lZCBsb25nICpkc3QsCi0JCQljb25zdCB1bnNpZ25l ZCBsb25nICpzcmMsIGludCBzaGlmdCwgaW50IGJpdHMpCi17Ci0JaW50IGssIGxpbSA9IEJJVFNf VE9fTE9OR1MoYml0cyksIGxlZnQgPSBiaXRzICUgQklUU19QRVJfTE9ORzsKLQlpbnQgb2ZmID0g c2hpZnQvQklUU19QRVJfTE9ORywgcmVtID0gc2hpZnQgJSBCSVRTX1BFUl9MT05HOwotCWZvciAo ayA9IGxpbSAtIG9mZiAtIDE7IGsgPj0gMDsgLS1rKSB7Ci0JCXVuc2lnbmVkIGxvbmcgdXBwZXIs IGxvd2VyOwotCi0JCS8qCi0JCSAqIElmIHNoaWZ0IGlzIG5vdCB3b3JkIGFsaWduZWQsIHRha2Ug dXBwZXIgcmVtIGJpdHMgb2YKLQkJICogd29yZCBiZWxvdyBhbmQgbWFrZSB0aGVtIHRoZSBib3R0 b20gcmVtIGJpdHMgb2YgcmVzdWx0LgotCQkgKi8KLQkJaWYgKHJlbSAmJiBrID4gMCkKLQkJCWxv d2VyID0gc3JjW2sgLSAxXTsKLQkJZWxzZQotCQkJbG93ZXIgPSAwOwotCQl1cHBlciA9IHNyY1tr XTsKLQkJaWYgKGxlZnQgJiYgayA9PSBsaW0gLSAxKQotCQkJdXBwZXIgJj0gKDFVTCA8PCBsZWZ0 KSAtIDE7Ci0JCWRzdFtrICsgb2ZmXSA9IHJlbSA/IChsb3dlciA+PiAoQklUU19QRVJfTE9ORyAt IHJlbSkpCi0JCSAgICAgICAgICAgICAgICAgICAgICB8ICh1cHBlciA8PCByZW0pCi0JCSAgICAg ICAgICAgICAgICAgICA6IHVwcGVyOwotCQlpZiAobGVmdCAmJiBrICsgb2ZmID09IGxpbSAtIDEp Ci0JCQlkc3RbayArIG9mZl0gJj0gKDFVTCA8PCBsZWZ0KSAtIDE7Ci0JfQotCWlmIChvZmYpCi0J CW1lbXNldChkc3QsIDAsIG9mZipzaXplb2YodW5zaWduZWQgbG9uZykpOwotfQotRVhQT1JUX1NZ TUJPTChfX2JpdG1hcF9zaGlmdF9sZWZ0KTsKLQogdm9pZCBfX2JpdG1hcF9hbmQodW5zaWduZWQg bG9uZyAqZHN0LCBjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAxLAogCQkJCWNvbnN0IHVuc2ln bmVkIGxvbmcgKmJpdG1hcDIsIGludCBiaXRzKQogewpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv eGVuL2JpdG1hcC5oIGIveGVuL2luY2x1ZGUveGVuL2JpdG1hcC5oCmluZGV4IDA0MzBjMWNlMmEu LjRlMWU2OTBhZjEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9iaXRtYXAuaAorKysgYi94 ZW4vaW5jbHVkZS94ZW4vYml0bWFwLmgKQEAgLTM4LDggKzM4LDYgQEAKICAqIGJpdG1hcF9lbXB0 eShzcmMsIG5iaXRzKQkJCUFyZSBhbGwgYml0cyB6ZXJvIGluICpzcmM/CiAgKiBiaXRtYXBfZnVs bChzcmMsIG5iaXRzKQkJCUFyZSBhbGwgYml0cyBzZXQgaW4gKnNyYz8KICAqIGJpdG1hcF93ZWln aHQoc3JjLCBuYml0cykJCQlIYW1taW5nIFdlaWdodDogbnVtYmVyIHNldCBiaXRzCi0gKiBiaXRt YXBfc2hpZnRfcmlnaHQoZHN0LCBzcmMsIG4sIG5iaXRzKQkqZHN0ID0gKnNyYyA+PiBuCi0gKiBi aXRtYXBfc2hpZnRfbGVmdChkc3QsIHNyYywgbiwgbmJpdHMpCSpkc3QgPSAqc3JjIDw8IG4KICAq LwogCiAvKgpAQCAtNzQsMTAgKzcyLDYgQEAgZXh0ZXJuIGludCBfX2JpdG1hcF9lcXVhbChjb25z dCB1bnNpZ25lZCBsb25nICpiaXRtYXAxLAogICAgICAgICAgICAgICAgIAljb25zdCB1bnNpZ25l ZCBsb25nICpiaXRtYXAyLCBpbnQgYml0cyk7CiBleHRlcm4gdm9pZCBfX2JpdG1hcF9jb21wbGVt ZW50KHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjLAogCQkJaW50 IGJpdHMpOwotZXh0ZXJuIHZvaWQgX19iaXRtYXBfc2hpZnRfcmlnaHQodW5zaWduZWQgbG9uZyAq ZHN0LAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjLCBp bnQgc2hpZnQsIGludCBiaXRzKTsKLWV4dGVybiB2b2lkIF9fYml0bWFwX3NoaWZ0X2xlZnQodW5z aWduZWQgbG9uZyAqZHN0LAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQg bG9uZyAqc3JjLCBpbnQgc2hpZnQsIGludCBiaXRzKTsKIGV4dGVybiB2b2lkIF9fYml0bWFwX2Fu ZCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDEsCiAJCQlj b25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAyLCBpbnQgYml0cyk7CiBleHRlcm4gdm9pZCBfX2Jp dG1hcF9vcih1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDEs CkBAIC0yMzMsMjIgKzIyNyw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IGJpdG1hcF93ZWlnaHQoY29u c3QgdW5zaWduZWQgbG9uZyAqc3JjLCBpbnQgbmJpdHMpCiAJcmV0dXJuIF9fYml0bWFwX3dlaWdo dChzcmMsIG5iaXRzKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGJpdG1hcF9zaGlmdF9yaWdo dCh1bnNpZ25lZCBsb25nICpkc3QsCi0JCQljb25zdCB1bnNpZ25lZCBsb25nICpzcmMsIGludCBu LCBpbnQgbmJpdHMpCi17Ci0JYml0bWFwX3N3aXRjaChuYml0cywsCi0JCSpkc3QgPSAqc3JjID4+ IG4sCi0JCV9fYml0bWFwX3NoaWZ0X3JpZ2h0KGRzdCwgc3JjLCBuLCBuYml0cykpOwotfQotCi1z dGF0aWMgaW5saW5lIHZvaWQgYml0bWFwX3NoaWZ0X2xlZnQodW5zaWduZWQgbG9uZyAqZHN0LAot CQkJY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjLCBpbnQgbiwgaW50IG5iaXRzKQotewotCWJpdG1h cF9zd2l0Y2gobmJpdHMsLAotCQkqZHN0ID0gKCpzcmMgPDwgbikgJiBCSVRNQVBfTEFTVF9XT1JE X01BU0sobmJpdHMpLAotCQlfX2JpdG1hcF9zaGlmdF9sZWZ0KGRzdCwgc3JjLCBuLCBuYml0cykp OwotfQotCiAjdW5kZWYgYml0bWFwX3N3aXRjaAogI3VuZGVmIGJpdG1hcF9ieXRlcwogCmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vY3B1bWFzay5oIGIveGVuL2luY2x1ZGUveGVuL2NwdW1h c2suaAppbmRleCAxZDczZjlmM2I2Li42YmU5NTY3ZTllIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS94ZW4vY3B1bWFzay5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9jcHVtYXNrLmgKQEAgLTMxLDkg KzMxLDYgQEAKICAqIGludCBjcHVtYXNrX2Z1bGwobWFzaykJCUlzIG1hc2sgZnVsbCAoYWxsIGJp dHMgc2V0cyk/CiAgKiBpbnQgY3B1bWFza193ZWlnaHQobWFzaykJCUhhbW1pbmcgd2VpZ2ggLSBu dW1iZXIgb2Ygc2V0IGJpdHMKICAqCi0gKiB2b2lkIGNwdW1hc2tfc2hpZnRfcmlnaHQoZHN0LCBz cmMsIG4pIFNoaWZ0IHJpZ2h0Ci0gKiB2b2lkIGNwdW1hc2tfc2hpZnRfbGVmdChkc3QsIHNyYywg bikJU2hpZnQgbGVmdAotICoKICAqIGludCBjcHVtYXNrX2ZpcnN0KG1hc2spCQlOdW1iZXIgbG93 ZXN0IHNldCBiaXQsIG9yIE5SX0NQVVMKICAqIGludCBjcHVtYXNrX25leHQoY3B1LCBtYXNrKQkJ TmV4dCBjcHUgcGFzdCAnY3B1Jywgb3IgTlJfQ1BVUwogICogaW50IGNwdW1hc2tfbGFzdChtYXNr KQkJTnVtYmVyIGhpZ2hlc3Qgc2V0IGJpdCwgb3IgTlJfQ1BVUwpAQCAtMjEzLDE4ICsyMTAsNiBA QCBzdGF0aWMgaW5saW5lIHZvaWQgY3B1bWFza19jb3B5KGNwdW1hc2tfdCAqZHN0cCwgY29uc3Qg Y3B1bWFza190ICpzcmNwKQogCWJpdG1hcF9jb3B5KGRzdHAtPmJpdHMsIHNyY3AtPmJpdHMsIG5y X2NwdW1hc2tfYml0cyk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBjcHVtYXNrX3NoaWZ0X3Jp Z2h0KGNwdW1hc2tfdCAqZHN0cCwKLQkJCQkgICAgICAgY29uc3QgY3B1bWFza190ICpzcmNwLCBp bnQgbikKLXsKLQliaXRtYXBfc2hpZnRfcmlnaHQoZHN0cC0+Yml0cywgc3JjcC0+Yml0cywgbiwg bnJfY3B1bWFza19iaXRzKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGNwdW1hc2tfc2hpZnRf bGVmdChjcHVtYXNrX3QgKmRzdHAsCi0JCQkJICAgICAgY29uc3QgY3B1bWFza190ICpzcmNwLCBp bnQgbikKLXsKLQliaXRtYXBfc2hpZnRfbGVmdChkc3RwLT5iaXRzLCBzcmNwLT5iaXRzLCBuLCBu cl9jcHVtYXNrX2JpdHMpOwotfQotCiBzdGF0aWMgaW5saW5lIGludCBjcHVtYXNrX2ZpcnN0KGNv bnN0IGNwdW1hc2tfdCAqc3JjcCkKIHsKIAlyZXR1cm4gbWluX3QoaW50LCBucl9jcHVfaWRzLCBm aW5kX2ZpcnN0X2JpdChzcmNwLT5iaXRzLCBucl9jcHVfaWRzKSk7CmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS94ZW4vbm9kZW1hc2suaCBiL3hlbi9pbmNsdWRlL3hlbi9ub2RlbWFzay5oCmluZGV4 IGUyODczOTkzNTIuLjVlZWJjMmM1ZWUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9ub2Rl bWFzay5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9ub2RlbWFzay5oCkBAIC0zMCw5ICszMCw2IEBA CiAgKiBpbnQgbm9kZXNfZnVsbChtYXNrKQkJCUlzIG1hc2sgZnVsbCAoYWxsIGJpdHMgc2V0cyk/ CiAgKiBpbnQgbm9kZXNfd2VpZ2h0KG1hc2spCQlIYW1taW5nIHdlaWdodCAtIG51bWJlciBvZiBz ZXQgYml0cwogICoKLSAqIHZvaWQgbm9kZXNfc2hpZnRfcmlnaHQoZHN0LCBzcmMsIG4pCVNoaWZ0 IHJpZ2h0Ci0gKiB2b2lkIG5vZGVzX3NoaWZ0X2xlZnQoZHN0LCBzcmMsIG4pCVNoaWZ0IGxlZnQK LSAqCiAgKiBpbnQgZmlyc3Rfbm9kZShtYXNrKQkJCU51bWJlciBsb3dlc3Qgc2V0IGJpdCwgb3Ig TUFYX05VTU5PREVTCiAgKiBpbnQgbmV4dF9ub2RlKG5vZGUsIG1hc2spCQlOZXh0IG5vZGUgcGFz dCAnbm9kZScsIG9yIE1BWF9OVU1OT0RFUwogICogaW50IGxhc3Rfbm9kZShtYXNrKQkJCU51bWJl ciBoaWdoZXN0IHNldCBiaXQsIG9yIE1BWF9OVU1OT0RFUwpAQCAtMTg5LDIyICsxODYsNiBAQCBz dGF0aWMgaW5saW5lIGludCBfX25vZGVzX3dlaWdodChjb25zdCBub2RlbWFza190ICpzcmNwLCBp bnQgbmJpdHMpCiAJcmV0dXJuIGJpdG1hcF93ZWlnaHQoc3JjcC0+Yml0cywgbmJpdHMpOwogfQog Ci0jZGVmaW5lIG5vZGVzX3NoaWZ0X3JpZ2h0KGRzdCwgc3JjLCBuKSBcCi0JCQlfX25vZGVzX3No aWZ0X3JpZ2h0KCYoZHN0KSwgJihzcmMpLCAobiksIE1BWF9OVU1OT0RFUykKLXN0YXRpYyBpbmxp bmUgdm9pZCBfX25vZGVzX3NoaWZ0X3JpZ2h0KG5vZGVtYXNrX3QgKmRzdHAsCi0JCQkJCWNvbnN0 IG5vZGVtYXNrX3QgKnNyY3AsIGludCBuLCBpbnQgbmJpdHMpCi17Ci0JYml0bWFwX3NoaWZ0X3Jp Z2h0KGRzdHAtPmJpdHMsIHNyY3AtPmJpdHMsIG4sIG5iaXRzKTsKLX0KLQotI2RlZmluZSBub2Rl c19zaGlmdF9sZWZ0KGRzdCwgc3JjLCBuKSBcCi0JCQlfX25vZGVzX3NoaWZ0X2xlZnQoJihkc3Qp LCAmKHNyYyksIChuKSwgTUFYX05VTU5PREVTKQotc3RhdGljIGlubGluZSB2b2lkIF9fbm9kZXNf c2hpZnRfbGVmdChub2RlbWFza190ICpkc3RwLAotCQkJCQljb25zdCBub2RlbWFza190ICpzcmNw LCBpbnQgbiwgaW50IG5iaXRzKQotewotCWJpdG1hcF9zaGlmdF9sZWZ0KGRzdHAtPmJpdHMsIHNy Y3AtPmJpdHMsIG4sIG5iaXRzKTsKLX0KLQogLyogRklYTUU6IGJldHRlciB3b3VsZCBiZSB0byBm aXggYWxsIGFyY2hpdGVjdHVyZXMgdG8gbmV2ZXIgcmV0dXJuCiAgICAgICAgICAgPiBNQVhfTlVN Tk9ERVMsIHRoZW4gdGhlIHNpbGx5IG1pbl90cyBjb3VsZCBiZSBkcm9wcGVkLiAqLwogCi0tIAoy LjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs