From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v13 07/23] x86: refactor psr: L3 CAT: implement get value flow. Date: Thu, 6 Jul 2017 09:53:00 +0800 Message-ID: <1499305996-19029-8-git-send-email-yi.y.sun@linux.intel.com> References: <1499305996-19029-1-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dSwBt-0000Zg-Jc for xen-devel@lists.xenproject.org; Thu, 06 Jul 2017 02:06:49 +0000 In-Reply-To: <1499305996-19029-1-git-send-email-yi.y.sun@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, Yi Sun , mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org VGhlcmUgaXMgYW4gaW50ZXJmYWNlIGluIHVzZXIgc3BhY2UgdG8gc2hvdyBmZWF0dXJlIHZhbHVl IG9mCmRvbWFpbnMuCgpUaGlzIHBhdGNoIGltcGxlbWVudHMgZ2V0IHZhbHVlIGZsb3cgaW4gaHlw ZXJ2aXNvci4KCkl0IGFsc28gY2hhbmdlcyBkb21jdGwgaW50ZXJmYWNlIHRvIG1ha2UgaXQgbW9y ZSBnZW5lcmFsLgoKV2l0aCB0aGlzIHBhdGNoLCAncHNyLWNhdC1zaG93JyBjYW4gd29yayBmb3Ig TDMgQ0FUIGJ1dCBub3QgZm9yCkwzIGNvZGUvZGF0YSB3aGljaCBpcyBpbXBsZW1lbnRlZCBpbiBD RFAgcmVsYXRlZCBwYXRjaGVzLgoKU2lnbmVkLW9mZi1ieTogWWkgU3VuIDx5aS55LnN1bkBsaW51 eC5pbnRlbC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ Ci0tLQp2MTI6CiAgICAtIHJlbW92ZSAncHNyX2dldF9mZWF0X2FuZF90eXBlJyBhbmQgaW1wbGVt ZW50IGl0cyBmdW5jdGlvbmFsaXR5IGluCiAgICAgICdwc3JfZ2V0X3ZhbCcuCiAgICAtIHVzZSAn QVNTRVJUX1VOUkVBQ0hBQkxFJyB0byByZWNvcmQgZXJyb3IuCiAgICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpCiAgICAtIHJldHVybiBzdWNjZXNzIG9ubHkgaWYgdGhlICd2YWwnIGlzIHNl dCBpbiAncHNyX2dldF92YWwnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2MTE6 CiAgICAtIGRlY2xhcmUgYSAnc3dpdGNoKCknIHdpZGUgdmFyaWFibGUgJ3ZhbDMyJyBpbiBkb21j dGwuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHJlbW92ZSAnZ2V0X3Zh bCcgY2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggaXMgcmVwbGFjZWQgYnkgZ2VuZXJpYyBjb2Rlcy4K ICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gZml4IGNvZGluZyBzdHlsZSBp c3N1ZS4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gZG8gbm90ICdBU1NF UlQnIGRvbWFpbiBwb2ludGVyLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAg LSBtb2RpZnkgY29tbWl0IG1lc3NhZ2UuCnYxMDoKICAgIC0gdXNlIGFuIGludGVybWVkaWF0ZSB2 YXJpYWJsZSB0byBnZXQgdmFsdWUgYW5kIGF2b2lkIGNhc3QgaW4gZG9tY3RsLgogICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZW1vdmUgJ3R5cGUnIGluICdnZXRfdmFsJyBw YXJhbWV0ZXJzIGFuZCB3aWxsIGFkZCBpdCBiYWNrIHdoZW4KICAgICAgaW1wbGVtZW50aW5nIENE UC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gcmVtb3ZlIHVubmVjZXNz YXJ5IHZhcmlhYmxlIGFuZCByZXR1cm4gZXJyb3IgYWJvdXQgJ2luZm8nIGluCiAgICAgICdwc3Jf Z2V0X2ZlYXQnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSB1c2UgJ0FT U0VSVCcgdG8gY2hlY2sgaW5wdXQgcGFyYW1ldGVyIGluICdwc3JfZ2V0X3ZhbCcuCiAgICAgIChz dWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGNoYW5nZXMgYWJvdXQgJ2ZlYXRfcHJvcHMn LgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2OToKICAgIC0gYWRkIGNvbW1pdCBt ZXNzYWdlIHRvIGV4cGxhaW4gdGhlcmUgaXMgYW4gdXNlciBzcGFjZSBpbnRlcmZhY2UuCiAgICAt IHJlbmFtZSAnbDNfY2F0X2dldF92YWwnIHRvICdjYXRfZ2V0X3ZhbCcgdG8gY292ZXIgYWxsIEwz L0wyIENBVCBmZWF0dXJlcy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUpCiAgICAtIHJl cGxhY2UgZmVhdHVyZSBsaXN0IGhhbmRsaW5nIHRvIGZlYXR1cmUgYXJyYXkgaGFuZGxpbmcuCiAg ICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1KQogICAgLSBjaGFuZ2UgcGFyYW1ldGVyIG9mICdw c3JfZ2V0Jy4gVXNlICdwc3JfY29zX2lkcycgZGlyZWN0bHkgdG8gcmVwbGFjZQogICAgICBkb21h aW4uIEFsc28gZGVjbGFyZSBpdCB0byAnY29uc3QnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKQogICAgLSBjaGFuZ2UgY29kZSBmbG93IHRvIHJlbW92ZSAncHNyX2dldCcgYnV0IGFk ZCAncHNyX2dldF9mZWF0JyB0byBtYWtlIGNvZGVzCiAgICAgIG1vcmUgcmVhc29uYWJsZS4KICAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW9kaWZ5IHBhdGNoIHRpdGxlIHRv IGluZGljYXRlICdMMyBDQVQnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAg LSBtb3ZlIGNvcyBjaGVjayBpbnRvIGNvbW1vbiBmdW5jdGlvbiBiZWNhdXNlIHRoaXMgY2hlY2sg aXMgcmVxdWlyZWQgYnkgYWxsCiAgICAgIGZlYXR1cmVzLgogICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKQogICAgLSBmaXggY29kaW5nIHN0eWxlIGlzc3VlLgogICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGFuZ2VzIGFib3V0ICd1aW50NjRfdCcgdG8gJ3VpbnQz Ml90Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjc6CiAgICAtIHJlbmFtZSAn X19wc3JfZ2V0JyB0byAncHNyX2dldCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgV2VpIExpdSkKdjY6 CiAgICAtIG1vZGlmeSBjb21taXQgbWVzc2FnZSB0byBtYWtlIGl0IGNsZWFyZXIuCiAgICAgIChz dWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKQogICAgLSByZW1vdmUgb25lIGV4dHJh IHNwYWNlIGluIGNvZGUuCiAgICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6dXRlayBXaWxr KQogICAgLSByZW1vdmUgdW5uZWNlc3NhcnkgY29tbWVudC4KICAgICAgKHN1Z2dlc3RlZCBieSBL b25yYWQgUnplc3p1dGVrIFdpbGspCiAgICAtIHdyaXRlIGEgaGVscGVyIGZ1bmN0aW9uIHRvIG1v dmUgZ2V0IGluZm8gYW5kIGdldCB2YWwgZnVuY3Rpb25zIGludG8KICAgICAgaXQuIEJlY2F1c2Ug bW9zdCBjb2RlcyBvZiAnZ2V0X2luZm8nIGFuZCAnZ2V0X3ZhbCcgYXJlIHNhbWUuCiAgICAgIChz dWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKQp2NToKICAgIC0gcmVuYW1lICdkYXRb XScgdG8gJ2RhdGFbXScKICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW9k aWZ5IHZhcmlhYmxlcyBuYW1lcyB0byBtYWtlIHRoZW0gYmV0dGVyLCBlLmcuICdmZWF0X3RtcCcg dG8gJ2ZlYXQnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGVjayBp ZiBmZWF0dXJlIHR5cGUgbWF0Y2ggaW4gY2FsbGVyIG9mIGZlYXR1cmUgY2FsbGJhY2sgZnVuY3Rp b24uCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY0OgogICAgLSBjcmVhdGUgdGhp cyBwYXRjaCB0byBtYWtlIGNvZGVzIGVhc2llciB0byB1bmRlcnN0YW5kLgogICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKQotLS0KIHhlbi9hcmNoL3g4Ni9kb21jdGwuYyAgICAgfCAyMCAr KysrKysrKysrLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvcHNyLmMgICAgICAgIHwgNTEgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIHhlbi9pbmNsdWRlL2Fz bS14ODYvcHNyLmggfCAgNCArKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyks IDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYyBiL3hl bi9hcmNoL3g4Ni9kb21jdGwuYwppbmRleCBmNDBlOTg5Li5mMzUwYzY2IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvZG9tY3RsLmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCkBAIC0xNDE5 LDYgKzE0MTksOCBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAogICAgIGNhc2UgWEVOX0RPTUNUTF9w c3JfY2F0X29wOgogICAgICAgICBzd2l0Y2ggKCBkb21jdGwtPnUucHNyX2NhdF9vcC5jbWQgKQog ICAgICAgICB7CisgICAgICAgICAgICB1aW50MzJfdCB2YWwzMjsKKwogICAgICAgICBjYXNlIFhF Tl9ET01DVExfUFNSX0NBVF9PUF9TRVRfTDNfQ0JNOgogICAgICAgICAgICAgcmV0ID0gcHNyX3Nl dF9sM19jYm0oZCwgZG9tY3RsLT51LnBzcl9jYXRfb3AudGFyZ2V0LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZG9tY3RsLT51LnBzcl9jYXRfb3AuZGF0YSwKQEAgLTE0MzgsMjMg KzE0NDAsMjMgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKICAgICAgICAgICAgIGJyZWFrOwogCiAg ICAgICAgIGNhc2UgWEVOX0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MM19DQk06Ci0gICAgICAgICAg ICByZXQgPSBwc3JfZ2V0X2wzX2NibShkLCBkb21jdGwtPnUucHNyX2NhdF9vcC50YXJnZXQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZG9tY3RsLT51LnBzcl9jYXRfb3AuZGF0 YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTUl9DQk1fVFlQRV9MMyk7Cisg ICAgICAgICAgICByZXQgPSBwc3JfZ2V0X3ZhbChkLCBkb21jdGwtPnUucHNyX2NhdF9vcC50YXJn ZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdmFsMzIsIFBTUl9DQk1fVFlQRV9M Myk7CisgICAgICAgICAgICBkb21jdGwtPnUucHNyX2NhdF9vcC5kYXRhID0gdmFsMzI7CiAgICAg ICAgICAgICBjb3B5YmFjayA9IDE7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNl IFhFTl9ET01DVExfUFNSX0NBVF9PUF9HRVRfTDNfQ09ERToKLSAgICAgICAgICAgIHJldCA9IHBz cl9nZXRfbDNfY2JtKGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRhcmdldCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZkb21jdGwtPnUucHNyX2NhdF9vcC5kYXRhLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNSX0NCTV9UWVBFX0wzX0NPREUpOworICAgICAg ICAgICAgcmV0ID0gcHNyX2dldF92YWwoZCwgZG9tY3RsLT51LnBzcl9jYXRfb3AudGFyZ2V0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnZhbDMyLCBQU1JfQ0JNX1RZUEVfTDNfQ09E RSk7CisgICAgICAgICAgICBkb21jdGwtPnUucHNyX2NhdF9vcC5kYXRhID0gdmFsMzI7CiAgICAg ICAgICAgICBjb3B5YmFjayA9IDE7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNl IFhFTl9ET01DVExfUFNSX0NBVF9PUF9HRVRfTDNfREFUQToKLSAgICAgICAgICAgIHJldCA9IHBz cl9nZXRfbDNfY2JtKGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRhcmdldCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZkb21jdGwtPnUucHNyX2NhdF9vcC5kYXRhLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNSX0NCTV9UWVBFX0wzX0RBVEEpOworICAgICAg ICAgICAgcmV0ID0gcHNyX2dldF92YWwoZCwgZG9tY3RsLT51LnBzcl9jYXRfb3AudGFyZ2V0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnZhbDMyLCBQU1JfQ0JNX1RZUEVfTDNfREFU QSk7CisgICAgICAgICAgICBkb21jdGwtPnUucHNyX2NhdF9vcC5kYXRhID0gdmFsMzI7CiAgICAg ICAgICAgICBjb3B5YmFjayA9IDE7CiAgICAgICAgICAgICBicmVhazsKIApkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L3Bzci5jIGIveGVuL2FyY2gveDg2L3Bzci5jCmluZGV4IDVkNmIyOWIuLmMy NDVjOWEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wc3IuYworKysgYi94ZW4vYXJjaC94ODYv cHNyLmMKQEAgLTUyNCwxMCArNTI0LDU1IEBAIGludCBwc3JfZ2V0X2luZm8odW5zaWduZWQgaW50 IHNvY2tldCwgZW51bSBjYm1fdHlwZSB0eXBlLAogICAgIHJldHVybiAtRUlOVkFMOwogfQogCi1p bnQgcHNyX2dldF9sM19jYm0oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNvY2tldCwK LSAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqY2JtLCBlbnVtIGNibV90eXBlIHR5cGUpCitp bnQgcHNyX2dldF92YWwoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNvY2tldCwKKyAg ICAgICAgICAgICAgICB1aW50MzJfdCAqdmFsLCBlbnVtIGNibV90eXBlIHR5cGUpCiB7Ci0gICAg cmV0dXJuIDA7CisgICAgY29uc3Qgc3RydWN0IHBzcl9zb2NrZXRfaW5mbyAqaW5mbyA9IGdldF9z b2NrZXRfaW5mbyhzb2NrZXQpOworICAgIGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQ7Cisg ICAgZW51bSBwc3JfZmVhdF90eXBlIGZlYXRfdHlwZTsKKyAgICB1bnNpZ25lZCBpbnQgY29zLCBp OworCisgICAgQVNTRVJUKHZhbCk7CisKKyAgICBpZiAoIElTX0VSUihpbmZvKSApCisgICAgICAg IHJldHVybiBQVFJfRVJSKGluZm8pOworCisgICAgZmVhdF90eXBlID0gcHNyX2NibV90eXBlX3Rv X2ZlYXRfdHlwZSh0eXBlKTsKKyAgICBpZiAoIGZlYXRfdHlwZSA+PSBBUlJBWV9TSVpFKGluZm8t PmZlYXR1cmVzKSApCisgICAgICAgIHJldHVybiAtRU5PRU5UOworCisgICAgZmVhdCA9IGluZm8t PmZlYXR1cmVzW2ZlYXRfdHlwZV07CisgICAgaWYgKCAhZmVhdCApCisgICAgICAgIHJldHVybiAt RU5PRU5UOworCisgICAgaWYgKCAhZmVhdF9wcm9wc1tmZWF0X3R5cGVdICkKKyAgICB7CisgICAg ICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgICAgICByZXR1cm4gLUVOT0VOVDsKKyAgICB9 CisKKyAgICBjb3MgPSBkLT5hcmNoLnBzcl9jb3NfaWRzW3NvY2tldF07CisgICAgLyoKKyAgICAg KiBJZiBpbnB1dCBjb3MgZXhjZWVkcyBjdXJyZW50IGZlYXR1cmUncyBjb3NfbWF4LCB3ZSBzaG91 bGQgcmV0dXJuIGl0cworICAgICAqIGRlZmF1bHQgdmFsdWUgd2hpY2ggaXMgc3RvcmVkIGluIGNv cyAwLiBUaGlzIGNhc2Ugb25seSBoYXBwZW5zCisgICAgICogd2hlbiBtb3JlIHRoYW4gdHdvIGZl YXR1cmVzIGVuYWJsZWQgY29uY3VycmVudGx5IGFuZCBhdCBsZWFzdCBvbmUKKyAgICAgKiBmZWF0 dXJlcydzIGNvc19tYXggaXMgYmlnZ2VyIHRoYW4gb3RoZXJzLiBXaGVuIGEgZG9tYWluJ3Mgd29y a2luZyBjb3MKKyAgICAgKiBpZCBpcyBiaWdnZXIgdGhhbiBzb21lIGZlYXR1cmVzJyBjb3NfbWF4 LCBIVyBhdXRvbWF0aWNhbGx5IHdvcmtzIGFzCisgICAgICogZGVmYXVsdCB2YWx1ZSBmb3IgdGhv c2UgZmVhdHVyZXMgd2hpY2ggY29zX21heCBpcyBzbWFsbGVyLgorICAgICAqLworICAgIGlmICgg Y29zID4gZmVhdC0+Y29zX21heCApCisgICAgICAgIGNvcyA9IDA7CisKKyAgICBmb3IgKCBpID0g MDsgaSA8IGZlYXRfcHJvcHNbZmVhdF90eXBlXS0+Y29zX251bTsgaSsrICkKKyAgICB7CisgICAg ICAgIGlmICggdHlwZSA9PSBmZWF0X3Byb3BzW2ZlYXRfdHlwZV0tPnR5cGVbaV0gKQorICAgICAg ICB7CisgICAgICAgICAgICAqdmFsID0gZmVhdC0+Y29zX3JlZ192YWxbY29zICogZmVhdF9wcm9w c1tmZWF0X3R5cGVdLT5jb3NfbnVtICsgaV07CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAg ICAgfQorICAgIH0KKworICAgIHJldHVybiAtRUlOVkFMOwogfQogCiBpbnQgcHNyX3NldF9sM19j Ym0oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNvY2tldCwKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL2FzbS14ODYvcHNyLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3Bzci5oCmluZGV4 IDhkMTUzMjguLjBlOTYwYmYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcHNyLmgK KysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wc3IuaApAQCAtNzIsOCArNzIsOCBAQCB2b2lkIHBz cl9jdHh0X3N3aXRjaF90byhzdHJ1Y3QgZG9tYWluICpkKTsKIAogaW50IHBzcl9nZXRfaW5mbyh1 bnNpZ25lZCBpbnQgc29ja2V0LCBlbnVtIGNibV90eXBlIHR5cGUsCiAgICAgICAgICAgICAgICAg IHVpbnQzMl90IGRhdGFbXSwgdW5zaWduZWQgaW50IGFycmF5X2xlbik7Ci1pbnQgcHNyX2dldF9s M19jYm0oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNvY2tldCwKLSAgICAgICAgICAg ICAgICAgICB1aW50NjRfdCAqY2JtLCBlbnVtIGNibV90eXBlIHR5cGUpOworaW50IHBzcl9nZXRf dmFsKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBzb2NrZXQsCisgICAgICAgICAgICAg ICAgdWludDMyX3QgKnZhbCwgZW51bSBjYm1fdHlwZSB0eXBlKTsKIGludCBwc3Jfc2V0X2wzX2Ni bShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgc29ja2V0LAogICAgICAgICAgICAgICAg ICAgIHVpbnQ2NF90IGNibSwgZW51bSBjYm1fdHlwZSB0eXBlKTsKIAotLSAKMS45LjEKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK