From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 5/7] x86/alt: Support for automatic padding calculations Date: Mon, 26 Feb 2018 11:35:02 +0000 Message-ID: <1519644904-11349-6-git-send-email-andrew.cooper3@citrix.com> References: <1519644904-11349-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1519644904-11349-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIGNvcnJlY3QgYW1vdW50IG9mIHBhZGRpbmcgaW4gYW4gb3JpZ2luIHBhdGNoIHNpdGUgY2Fu IGJlIGNhbGN1bGF0ZWQKYXV0b21hdGljYWxseSwgYmFzZWQgb24gdGhlIHJlbGF0aXZlIGxlbmd0 aHMgb2YgdGhlIHJlcGxhY2VtZW50cy4KClRoaXMgcmVxdWlyZXMgYSBiaXQgb2YgdHJpY2tlcnkg dG8gY2FsY3VsYXRlIGNvcnJlY3RseSwgZXNwZWNpYWxseSBpbiB0aGUKQUxURU5SQVRJVkVfMiBj YXNlIHdoZXJlIGEgYnJhbmNobGVzcyBtYXgoKSBjYWxjdWxhdGlvbiBpbiBuZWVkZWQuICBUaGUK Y2FsY3VsYXRpb24gaXMgZnVydGhlciBjb21wbGljYXRlZCBiZWNhdXNlIEdBUydzIGlkZWEgb2Yg dHJ1ZSBpcyAtMSByYXRoZXIKdGhhbiAxLCB3aGljaCBpcyB3aHkgdGhlIGV4dHJhIG5lZ2F0aW9u cyBhcmUgcmVxdWlyZWQuCgpBZGRpdGlvbmFsbHksIGhhdmUgYXBwbHlfYWx0ZXJuYXRpdmVzKCkg YXR0ZW1wdCB0byBvcHRpbWlzZSB0aGUgcGFkZGluZyBub3BzLgoKU2lnbmVkLW9mZi1ieTogQW5k cmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGlj aCA8SkJldWxpY2hAc3VzZS5jb20+CkNDOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53 aWxrQG9yYWNsZS5jb20+CkNDOiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNv bT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Cgp2MjogRml4IGJ1aWxkIHdpdGgg Q2xhbmcuCi0tLQogeGVuL2FyY2gveDg2L1J1bGVzLm1rICAgICAgICAgICAgICAgICB8ICA0ICsr KwogeGVuL2FyY2gveDg2L2FsdGVybmF0aXZlLmMgICAgICAgICAgICB8IDMyICsrKysrKysrKysr KysrKystLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUtYXNtLmggfCA2MCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRl cm5hdGl2ZS5oICAgICB8IDQ2ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogNCBmaWxlcyBj aGFuZ2VkLCAxMjAgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L1J1bGVzLm1rIGIveGVuL2FyY2gveDg2L1J1bGVzLm1rCmluZGV4IDk4OTdk ZWEuLmUxNjlkNjcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9SdWxlcy5taworKysgYi94ZW4v YXJjaC94ODYvUnVsZXMubWsKQEAgLTI0LDYgKzI0LDEwIEBAICQoY2FsbCBhcy1vcHRpb24tYWRk LENGTEFHUyxDQywiLmVxdSBcInhcIiQkKGNvbW1hKTEiLCBcCiAgICAgICAgICAgICAgICAgICAg ICAtVV9fT0JKRUNUX0xBQkVMX18gLURIQVZFX0dBU19RVU9URURfU1lNIFwKICAgICAgICAgICAg ICAgICAgICAgICctRF9fT0JKRUNUX0xBQkVMX189JChzdWJzdCAkKEJBU0VESVIpLywsJChDVVJE SVIpKS8kJEAnKQogCisjIEdDQydzIGlkZWEgb2YgdHJ1ZSBpcyAtMS4gIENsYW5nJ3MgaWRlYSBp cyAxCiskKGNhbGwgYXMtb3B0aW9uLWFkZCxDRkxBR1MsQ0MsXAorICAgICIuaWYgKCgxID4gMCkg PCAwKTsgLmVycm9yIFwiXCI7LmVuZGlmIiwsLURIQVZFX0FTX05FR0FUSVZFX1RSVUUpCisKIENG TEFHUyArPSAtbW5vLXJlZC16b25lIC1mcGljIC1mbm8tYXN5bmNocm9ub3VzLXVud2luZC10YWJs ZXMKIAogIyBYZW4gZG9lc24ndCB1c2UgU1NFIGludGVyYWxseS4gIElmIHRoZSBjb21waWxlciBz dXBwb3J0cyBpdCwgYWxzbyBza2lwIHRoZQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FsdGVy bmF0aXZlLmMgYi94ZW4vYXJjaC94ODYvYWx0ZXJuYXRpdmUuYwppbmRleCA1MWNhNTNlLi5lMjRk Yjg0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWx0ZXJuYXRpdmUuYworKysgYi94ZW4vYXJj aC94ODYvYWx0ZXJuYXRpdmUuYwpAQCAtMTgwLDEzICsxODAsMzcgQEAgdm9pZCBpbml0X29yX2xp dmVwYXRjaCBhcHBseV9hbHRlcm5hdGl2ZXMoY29uc3Qgc3RydWN0IGFsdF9pbnN0ciAqc3RhcnQs CiAgICAgICAgIHVpbnQ4X3QgKm9yaWcgPSBBTFRfT1JJR19QVFIoYSk7CiAgICAgICAgIHVpbnQ4 X3QgKnJlcGwgPSBBTFRfUkVQTF9QVFIoYSk7CiAgICAgICAgIHVpbnQ4X3QgYnVmW01BWF9QQVRD SF9MRU5dOworICAgICAgICB1bnNpZ25lZCBpbnQgdG90YWxfbGVuID0gYS0+b3JpZ19sZW4gKyBh LT5wYWRfbGVuOwogCi0gICAgICAgIEJVR19PTihhLT5yZXBsX2xlbiA+IGEtPm9yaWdfbGVuKTsK LSAgICAgICAgQlVHX09OKGEtPm9yaWdfbGVuID4gc2l6ZW9mKGJ1ZikpOworICAgICAgICBCVUdf T04oYS0+cmVwbF9sZW4gPiB0b3RhbF9sZW4pOworICAgICAgICBCVUdfT04odG90YWxfbGVuID4g c2l6ZW9mKGJ1ZikpOwogICAgICAgICBCVUdfT04oYS0+Y3B1aWQgPj0gTkNBUElOVFMgKiAzMik7 CiAKKyAgICAgICAgLyogTm8gcmVwbGFjZW1lbnQgdG8gbWFrZSwgYnV0IHRyeSB0byBvcHRpbWlz ZSBhbnkgcGFkZGluZy4gKi8KICAgICAgICAgaWYgKCAhYm9vdF9jcHVfaGFzKGEtPmNwdWlkKSAp CisgICAgICAgIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGludCBpOworCisgICAgICAgICAgICBp ZiAoIGEtPnBhZF9sZW4gPD0gMSApCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg ICAgICAgIC8qIFNlYXJjaCB0aGUgcGFkZGluZyBhcmVhIGZvciBhbnkgYnl0ZSB3aGljaCBpc24n dCBhIG5vcC4gKi8KKyAgICAgICAgICAgIGZvciAoIGkgPSBhLT5vcmlnX2xlbjsgaSA8IHRvdGFs X2xlbjsgKytpICkKKyAgICAgICAgICAgICAgICBpZiAoIG9yaWdbaV0gIT0gMHg5MCApCisgICAg ICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICog T25seSBtYWtlIGFueSBjaGFuZ2VzIGlmIGFsbCBwYWRkaW5nIGJ5dGVzIGFyZSB1bm9wdGltaXNl ZAorICAgICAgICAgICAgICogbm9wcy4gIFdpdGggbXVsdGlwbGUgYWx0ZXJuYXRpdmVzIG92ZXIg dGhlIHNhbWUgb3JpZ2luIHNpdGUsIHdlCisgICAgICAgICAgICAgKiBtYXkgaGF2ZSBhbHJlYWR5 IG1hZGUgYSByZXBsYWNlbWVudCwgb3Igb3B0aW1pc2VkIHRoZSBub3BzLgorICAgICAgICAgICAg ICovCisgICAgICAgICAgICBpZiAoIGkgIT0gdG90YWxfbGVuICkKKyAgICAgICAgICAgICAgICBj b250aW51ZTsKKworICAgICAgICAgICAgYWRkX25vcHMoYnVmLCBhLT5wYWRfbGVuKTsKKyAgICAg ICAgICAgIHRleHRfcG9rZShvcmlnICsgYS0+b3JpZ19sZW4sIGJ1ZiwgYS0+cGFkX2xlbik7CiAg ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogCiAgICAgICAgIG1lbWNweShidWYsIHJl cGwsIGEtPnJlcGxfbGVuKTsKIApAQCAtMTk0LDggKzIxOCw4IEBAIHZvaWQgaW5pdF9vcl9saXZl cGF0Y2ggYXBwbHlfYWx0ZXJuYXRpdmVzKGNvbnN0IHN0cnVjdCBhbHRfaW5zdHIgKnN0YXJ0LAog ICAgICAgICBpZiAoIGEtPnJlcGxfbGVuID49IDUgJiYgKCpidWYgJiAweGZlKSA9PSAweGU4ICkK ICAgICAgICAgICAgICooaW50MzJfdCAqKShidWYgKyAxKSArPSByZXBsIC0gb3JpZzsKIAotICAg ICAgICBhZGRfbm9wcyhidWYgKyBhLT5yZXBsX2xlbiwgYS0+b3JpZ19sZW4gLSBhLT5yZXBsX2xl bik7Ci0gICAgICAgIHRleHRfcG9rZShvcmlnLCBidWYsIGEtPm9yaWdfbGVuKTsKKyAgICAgICAg YWRkX25vcHMoYnVmICsgYS0+cmVwbF9sZW4sIHRvdGFsX2xlbiAtIGEtPnJlcGxfbGVuKTsKKyAg ICAgICAgdGV4dF9wb2tlKG9yaWcsIGJ1ZiwgdG90YWxfbGVuKTsKICAgICB9CiB9CiAKZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUtYXNtLmggYi94ZW4vaW5jbHVk ZS9hc20teDg2L2FsdGVybmF0aXZlLWFzbS5oCmluZGV4IDE1MGJkMWEuLjI1Zjc5ZmUgMTAwNjQ0 Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUtYXNtLmgKKysrIGIveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS1hc20uaApAQCAtOSwzMCArOSw1NSBAQAogICogZW5v dWdoIGluZm9ybWF0aW9uIGZvciB0aGUgYWx0ZXJuYXRpdmVzIHBhdGNoaW5nIGNvZGUgdG8gcGF0 Y2ggYW4KICAqIGluc3RydWN0aW9uLiBTZWUgYXBwbHlfYWx0ZXJuYXRpdmVzKCkuCiAgKi8KLS5t YWNybyBhbHRpbnN0cnVjdGlvbl9lbnRyeSBvcmlnIHJlcGwgZmVhdHVyZSBvcmlnX2xlbiByZXBs X2xlbgorLm1hY3JvIGFsdGluc3RydWN0aW9uX2VudHJ5IG9yaWcgcmVwbCBmZWF0dXJlIG9yaWdf bGVuIHJlcGxfbGVuIHBhZF9sZW4KICAgICAubG9uZyBcb3JpZyAtIC4KICAgICAubG9uZyBccmVw bCAtIC4KICAgICAud29yZCBcZmVhdHVyZQogICAgIC5ieXRlIFxvcmlnX2xlbgogICAgIC5ieXRl IFxyZXBsX2xlbgorICAgIC5ieXRlIFxwYWRfbGVuCiAuZW5kbQogCiAjZGVmaW5lIG9yaWdfbGVu ICAgICAgICAgICAgICAgKC5MXEBfb3JpZ19lICAgICAgIC0gICAgIC5MXEBfb3JpZ19zKQorI2Rl ZmluZSBwYWRfbGVuICAgICAgICAgICAgICAgICguTFxAX29yaWdfcCAgICAgICAtICAgICAuTFxA X29yaWdfZSkKKyNkZWZpbmUgdG90YWxfbGVuICAgICAgICAgICAgICAoLkxcQF9vcmlnX3AgICAg ICAgLSAgICAgLkxcQF9vcmlnX3MpCiAjZGVmaW5lIHJlcGxfbGVuKG5yKSAgICAgICAgICAgKC5M XEBfcmVwbF9lXCgpbnIgIC0gICAgIC5MXEBfcmVwbF9zXCgpbnIpCiAjZGVmaW5lIGRlY2xfcmVw bChpbnNuLCBucikgICAgIC5MXEBfcmVwbF9zXCgpbnI6IGluc247IC5MXEBfcmVwbF9lXCgpbnI6 CiAKKy8qIEdDQydzIGlkZWEgb2YgdHJ1ZSBpcyAtMSwgd2hpbGUgQ2xhbmcncyBpZGVhIGlzIDEu ICovCisjaWZkZWYgSEFWRV9BU19ORUdBVElWRV9UUlVFCisjIGRlZmluZSBhc190cnVlKHgpICgt KHgpKQorI2Vsc2UKKyMgZGVmaW5lIGFzX3RydWUoeCkgKHgpCisjZW5kaWYKKworI2RlZmluZSBh c19tYXgoYSwgYikgICAgICAgICAgICgoYSkgXiAoKChhKSBeIChiKSkgJiAtYXNfdHJ1ZSgoYSkg PCAoYikpKSkKKwogLm1hY3JvIEFMVEVSTkFUSVZFIG9sZGluc3RyLCBuZXdpbnN0ciwgZmVhdHVy ZQogLkxcQF9vcmlnX3M6CiAgICAgXG9sZGluc3RyCiAuTFxAX29yaWdfZToKKyAgICAvKgorICAg ICAqIENhbGN1bGF0ZSB0aGUgZGlmZmVyZW5jZSBpbiBzaXplIGJldHdlZW4gdGhlIHJlcGxhY2Vt ZW50IGFuZCBvcmlnaW5hbAorICAgICAqIGluc3RydWN0aW9ucywgdG8gZGVyaXZlIGhvdyBtdWNo IHBhZGRpbmcgdG8gaW50cm9kdWNlLgorICAgICAqLworICAgIC5MXEBfZGlmZiA9IHJlcGxfbGVu KDEpIC0gb3JpZ19sZW4KKworICAgIC5za2lwIGFzX3RydWUoLkxcQF9kaWZmID4gMCkgKiAuTFxA X2RpZmYsIDB4OTAKKy5MXEBfb3JpZ19wOgogCiAgICAgLnB1c2hzZWN0aW9uIC5hbHRpbnN0cnVj dGlvbnMsICJhIiwgQHByb2diaXRzCiAgICAgYWx0aW5zdHJ1Y3Rpb25fZW50cnkgLkxcQF9vcmln X3MsIC5MXEBfcmVwbF9zMSwgXGZlYXR1cmUsIFwKLSAgICAgICAgb3JpZ19sZW4sIHJlcGxfbGVu KDEpCisgICAgICAgIG9yaWdfbGVuLCByZXBsX2xlbigxKSwgcGFkX2xlbgogCiAgICAgLnNlY3Rp b24gLmRpc2NhcmQsICJhIiwgQHByb2diaXRzCi0gICAgLyogQXNzZW1ibGVyLXRpbWUgY2hlY2sg dGhhdCBcbmV3aW5zdHIgaXNuJ3QgbG9uZ2VyIHRoYW4gXG9sZGluc3RyLiAqLwotICAgIC5ieXRl IDB4ZmYgKyByZXBsX2xlbigxKSAtIG9yaWdfbGVuCisgICAgLyoKKyAgICAgKiBBc3NlbWJsZXIt dGltZSBjaGVja3M6CisgICAgICogICAtIHRvdGFsX2xlbiA8PSAyNTUKKyAgICAgKiAgIC0gXG5l d2luc3RyIDw9IHRvdGFsX2xlbgorICAgICAqLworICAgIC5ieXRlIHRvdGFsX2xlbgorICAgIC5i eXRlIDB4ZmYgKyByZXBsX2xlbigxKSAtIHRvdGFsX2xlbgogCiAgICAgLnNlY3Rpb24gLmFsdGlu c3RyX3JlcGxhY2VtZW50LCAiYXgiLCBAcHJvZ2JpdHMKIApAQCAtNDUsMTggKzcwLDMxIEBACiAu TFxAX29yaWdfczoKICAgICBcb2xkaW5zdHIKIC5MXEBfb3JpZ19lOgorICAgIC8qCisgICAgICog Q2FsY3VsYXRlIHRoZSBkaWZmZXJlbmNlIGluIHNpemUgYmV0d2VlbiB0aGUgbGFyZ2VzdCByZXBs YWNlbWVudCBhbmQKKyAgICAgKiB0aGUgb3JpZ2luYWwgaW5zdHJ1Y3Rpb25zLCB0byBkZXJpdmUg aG93IG11Y2ggcGFkZGluZyB0byBpbnRyb2R1Y2UuCisgICAgICovCisgICAgLkxcQF9kaWZmID0g YXNfbWF4KHJlcGxfbGVuKDEpLCByZXBsX2xlbigyKSkgLSBvcmlnX2xlbgorCisgICAgIC5za2lw IGFzX3RydWUoLkxcQF9kaWZmID4gMCkgKiAuTFxAX2RpZmYsIDB4OTAKKy5MXEBfb3JpZ19wOgog CiAgICAgLnB1c2hzZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsICJhIiwgQHByb2diaXRzCiAKICAg ICBhbHRpbnN0cnVjdGlvbl9lbnRyeSAuTFxAX29yaWdfcywgLkxcQF9yZXBsX3MxLCBcZmVhdHVy ZTEsIFwKLSAgICAgICAgb3JpZ19sZW4sIHJlcGxfbGVuKDEpCisgICAgICAgIG9yaWdfbGVuLCBy ZXBsX2xlbigxKSwgcGFkX2xlbgogICAgIGFsdGluc3RydWN0aW9uX2VudHJ5IC5MXEBfb3JpZ19z LCAuTFxAX3JlcGxfczIsIFxmZWF0dXJlMiwgXAotICAgICAgICBvcmlnX2xlbiwgcmVwbF9sZW4o MikKKyAgICAgICAgb3JpZ19sZW4sIHJlcGxfbGVuKDIpLCBwYWRfbGVuCiAKICAgICAuc2VjdGlv biAuZGlzY2FyZCwgImEiLCBAcHJvZ2JpdHMKLSAgICAvKiBBc3NlbWJsZXItdGltZSBjaGVjayB0 aGF0IFxuZXdpbnN0cnsxLDJ9IGFyZW4ndCBsb25nZXIgdGhhbiBcb2xkaW5zdHIuICovCi0gICAg LmJ5dGUgMHhmZiArIHJlcGxfbGVuKDEpIC0gb3JpZ19sZW4KLSAgICAuYnl0ZSAweGZmICsgcmVw bF9sZW4oMikgLSBvcmlnX2xlbgorICAgIC8qCisgICAgICogQXNzZW1ibGVyLXRpbWUgY2hlY2tz OgorICAgICAqICAgLSB0b3RhbF9sZW4gPD0gMjU1CisgICAgICogICAtIFxuZXdpbnN0ciogPD0g dG90YWxfbGVuCisgICAgICovCisgICAgLmJ5dGUgdG90YWxfbGVuCisgICAgLmJ5dGUgMHhmZiAr IHJlcGxfbGVuKDEpIC0gdG90YWxfbGVuCisgICAgLmJ5dGUgMHhmZiArIHJlcGxfbGVuKDIpIC0g dG90YWxfbGVuCiAKICAgICAuc2VjdGlvbiAuYWx0aW5zdHJfcmVwbGFjZW1lbnQsICJheCIsIEBw cm9nYml0cwogCkBAIC02Niw4ICsxMDQsMTIgQEAKICAgICAucG9wc2VjdGlvbgogLmVuZG0KIAor I3VuZGVmIGFzX21heAorI3VuZGVmIGFzX3RydWUKICN1bmRlZiBkZWNsX3JlcGwKICN1bmRlZiBy ZXBsX2xlbgorI3VuZGVmIHRvdGFsX2xlbgorI3VuZGVmIHBhZF9sZW4KICN1bmRlZiBvcmlnX2xl bgogCiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9h c20teDg2L2FsdGVybmF0aXZlLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2FsdGVybmF0aXZlLmgK aW5kZXggYmNhZDNlZS4uZDUzY2VhMCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9h bHRlcm5hdGl2ZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUuaApAQCAt OCwxMiArOCwxMyBAQAogI2luY2x1ZGUgPHhlbi9zdHJpbmdpZnkuaD4KICNpbmNsdWRlIDx4ZW4v dHlwZXMuaD4KIAotc3RydWN0IGFsdF9pbnN0ciB7CitzdHJ1Y3QgX19wYWNrZWQgYWx0X2luc3Ry IHsKICAgICBpbnQzMl90ICBvcmlnX29mZnNldDsgICAvKiBvcmlnaW5hbCBpbnN0cnVjdGlvbiAq LwogICAgIGludDMyX3QgIHJlcGxfb2Zmc2V0OyAgIC8qIG9mZnNldCB0byByZXBsYWNlbWVudCBp bnN0cnVjdGlvbiAqLwogICAgIHVpbnQxNl90IGNwdWlkOyAgICAgICAgIC8qIGNwdWlkIGJpdCBz ZXQgZm9yIHJlcGxhY2VtZW50ICovCiAgICAgdWludDhfdCAgb3JpZ19sZW47ICAgICAgLyogbGVu Z3RoIG9mIG9yaWdpbmFsIGluc3RydWN0aW9uICovCi0gICAgdWludDhfdCAgcmVwbF9sZW47ICAg ICAgLyogbGVuZ3RoIG9mIG5ldyBpbnN0cnVjdGlvbiwgPD0gaW5zdHJsZW4gKi8KKyAgICB1aW50 OF90ICByZXBsX2xlbjsgICAgICAvKiBsZW5ndGggb2YgbmV3IGluc3RydWN0aW9uICovCisgICAg dWludDhfdCAgcGFkX2xlbjsgICAgICAgLyogbGVuZ3RoIG9mIGJ1aWxkLXRpbWUgcGFkZGluZyAq LwogfTsKIAogI2RlZmluZSBfX0FMVF9QVFIoYSxmKSAgICAgICgodWludDhfdCAqKSgodm9pZCAq KSYoYSktPmYgKyAoYSktPmYpKQpAQCAtMjYsNDMgKzI3LDcwIEBAIGV4dGVybiB2b2lkIGFwcGx5 X2FsdGVybmF0aXZlcyhjb25zdCBzdHJ1Y3QgYWx0X2luc3RyICpzdGFydCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYWx0X2luc3RyICplbmQpOwogZXh0ZXJu IHZvaWQgYWx0ZXJuYXRpdmVfaW5zdHJ1Y3Rpb25zKHZvaWQpOwogCi0jZGVmaW5lIE9MRElOU1RS KG9sZGluc3RyKSAiLkxYRU4lPV9vcmlnX3M6XG5cdCIgb2xkaW5zdHIgIlxuLkxYRU4lPV9vcmln X2U6XG4iCi0KICNkZWZpbmUgYWx0X29yaWdfbGVuICAgICAgICIoLkxYRU4lPV9vcmlnX2UgLSAu TFhFTiU9X29yaWdfcykiCisjZGVmaW5lIGFsdF9wYWRfbGVuICAgICAgICAiKC5MWEVOJT1fb3Jp Z19wIC0gLkxYRU4lPV9vcmlnX2UpIgorI2RlZmluZSBhbHRfdG90YWxfbGVuICAgICAgIiguTFhF TiU9X29yaWdfcCAtIC5MWEVOJT1fb3JpZ19zKSIKICNkZWZpbmUgYWx0X3JlcGxfcyhudW0pICAg ICIuTFhFTiU9X3JlcGxfcyIjbnVtCiAjZGVmaW5lIGFsdF9yZXBsX2UobnVtKSAgICAiLkxYRU4l PV9yZXBsX2UiI251bQogI2RlZmluZSBhbHRfcmVwbF9sZW4obnVtKSAgIigiIGFsdF9yZXBsX2Uo bnVtKSAiIC0gIiBhbHRfcmVwbF9zKG51bSkgIikiCiAKKy8qIEdDQydzIGlkZWEgb2YgdHJ1ZSBp cyAtMSwgd2hpbGUgQ2xhbmcncyBpZGVhIGlzIDEuICovCisjaWZkZWYgSEFWRV9BU19ORUdBVElW RV9UUlVFCisjIGRlZmluZSBBU19UUlVFICItIgorI2Vsc2UKKyMgZGVmaW5lIEFTX1RSVUUgIiIK KyNlbmRpZgorCisjZGVmaW5lIGFzX21heChhLCBiKSAiKCgiYSIpIF4gKCgoImEiKSBeICgiYiIp KSAmIC0oIkFTX1RSVUUiKCgiYSIpIDwgKCJiIikpKSkpIgorCisjZGVmaW5lIE9MRElOU1RSXzEo b2xkaW5zdHIsIG4xKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAiLkxY RU4lPV9vcmlnX3M6XG5cdCIgb2xkaW5zdHIgIlxuIC5MWEVOJT1fb3JpZ19lOlxuXHQiICAgICAg XAorICAgICIuTFhFTiU9X2RpZmYgPSAiYWx0X3JlcGxfbGVuKG4xKSItImFsdF9vcmlnX2xlbiJc blx0IiAgICAgICBcCisgICAgIi5za2lwICJBU19UUlVFIiguTFhFTiU9X2RpZmYgPiAwKSAqIC5M WEVOJT1fZGlmZiwgMHg5MFxuXHQiIFwKKyAgICAiLkxYRU4lPV9vcmlnX3A6XG5cdCIKKworI2Rl ZmluZSBBTFRfUEFERElOR19MRU4objEsIG4yKSBcCisgICAgYXNfbWF4KChhbHRfcmVwbF9sZW4o bjEpLCBhbHRfcmVwbF9sZW4objIpKSItImFsdF9vcmlnX2xlbgorCisjZGVmaW5lIE9MRElOU1RS XzIob2xkaW5zdHIsIG4xLCBuMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAi LkxYRU4lPV9vcmlnX3M6XG5cdCIgb2xkaW5zdHIgIlxuIC5MWEVOJT1fb3JpZ19lOlxuXHQiICAg ICAgXAorICAgICIuTFhFTiU9X2RpZmYgPSAiQUxUX1BBRERJTkdfTEVOKG4xLCBuMikiXG5cdCIg ICAgICAgICAgICAgICBcCisgICAgIi5za2lwICJBU19UUlVFIiguTFhFTiU9X2RpZmYgPiAwKSAq IC5MWEVOJT1fZGlmZiwgMHg5MFxuXHQiIFwKKyAgICAiLkxYRU4lPV9vcmlnX3A6XG5cdCIKKwog I2RlZmluZSBBTFRJTlNUUl9FTlRSWShmZWF0dXJlLCBudW0pICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAogICAgICAgICAiIC5sb25nIC5MWEVOJT1fb3JpZ19zIC0gLlxuIiAg ICAgICAgICAgICAvKiBsYWJlbCAgICAgICAgICAgKi8gXAogICAgICAgICAiIC5sb25nICIgYWx0 X3JlcGxfcyhudW0pIiAtIC5cbiIgICAgICAgICAvKiBuZXcgaW5zdHJ1Y3Rpb24gKi8gXAogICAg ICAgICAiIC53b3JkICIgX19zdHJpbmdpZnkoZmVhdHVyZSkgIlxuIiAgICAgICAvKiBmZWF0dXJl IGJpdCAgICAgKi8gXAogICAgICAgICAiIC5ieXRlICIgYWx0X29yaWdfbGVuICJcbiIgICAgICAg ICAgICAgICAvKiBzb3VyY2UgbGVuICAgICAgKi8gXAotICAgICAgICAiIC5ieXRlICIgYWx0X3Jl cGxfbGVuKG51bSkgIlxuIiAgICAgICAgICAvKiByZXBsYWNlbWVudCBsZW4gKi8KKyAgICAgICAg IiAuYnl0ZSAiIGFsdF9yZXBsX2xlbihudW0pICJcbiIgICAgICAgICAgLyogcmVwbGFjZW1lbnQg bGVuICovIFwKKyAgICAgICAgIiAuYnl0ZSAiIGFsdF9wYWRfbGVuICJcbiIgICAgICAgICAgICAg ICAgLyogcGFkZGluZyBsZW4gICAgICovCiAKLSNkZWZpbmUgRElTQ0FSRF9FTlRSWShudW0pICAg ICAgICAgICAgICAgICAgICAgICAgLyogcmVwbCA8PSBvcmlnICovICAgIFwKLSAgICAgICAgIiAu Ynl0ZSAweGZmICsgKCIgYWx0X3JlcGxfbGVuKG51bSkgIikgLSAoIiBhbHRfb3JpZ19sZW4gIilc biIKKyNkZWZpbmUgRElTQ0FSRF9FTlRSWShudW0pICAgICAgICAgICAgICAgICAgICAgICAgLyog cmVwbCA8PSB0b3RhbCAqLyAgIFwKKyAgICAgICAgIiAuYnl0ZSAweGZmICsgKCIgYWx0X3JlcGxf bGVuKG51bSkgIikgLSAoIiBhbHRfdG90YWxfbGVuICIpXG4iCiAKICNkZWZpbmUgQUxUSU5TVFJf UkVQTEFDRU1FTlQobmV3aW5zdHIsIG51bSkgICAgICAgLyogcmVwbGFjZW1lbnQgKi8gICAgIFwK ICAgICAgICAgYWx0X3JlcGxfcyhudW0pIjpcblx0IiBuZXdpbnN0ciAiXG4iIGFsdF9yZXBsX2Uo bnVtKSAiOlxuXHQiCiAKIC8qIGFsdGVybmF0aXZlIGFzc2VtYmx5IHByaW1pdGl2ZTogKi8KICNk ZWZpbmUgQUxURVJOQVRJVkUob2xkaW5zdHIsIG5ld2luc3RyLCBmZWF0dXJlKSAgICAgICAgICAg ICAgICAgICAgICAgIFwKLSAgICAgICAgT0xESU5TVFIob2xkaW5zdHIpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgT0xESU5TVFJfMShvbGRp bnN0ciwgMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAg ICAgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJ1Y3Rpb25zLCBcImFcIiwgQHByb2diaXRzXG4iICAg ICAgICAgICAgIFwKICAgICAgICAgQUxUSU5TVFJfRU5UUlkoZmVhdHVyZSwgMSkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIi5zZWN0aW9uIC5kaXNjYXJk LCBcImFcIiwgQHByb2diaXRzXG4iICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg Ii5ieXRlICIgYWx0X3RvdGFsX2xlbiAiXG4iIC8qIHRvdGFsX2xlbiA8PSAyNTUgKi8gICAgICAg ICAgICAgIFwKICAgICAgICAgRElTQ0FSRF9FTlRSWSgxKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIi5zZWN0aW9uIC5hbHRpbnN0cl9y ZXBsYWNlbWVudCwgXCJheFwiLCBAcHJvZ2JpdHNcbiIgICAgICAgICAgIFwKICAgICAgICAgQUxU SU5TVFJfUkVQTEFDRU1FTlQobmV3aW5zdHIsIDEpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgICAgICAgIi5wb3BzZWN0aW9uXG4iCiAKICNkZWZpbmUgQUxURVJOQVRJVkVfMihv bGRpbnN0ciwgbmV3aW5zdHIxLCBmZWF0dXJlMSwgbmV3aW5zdHIyLCBmZWF0dXJlMikgXAotICAg ICAgICBPTERJTlNUUihvbGRpbnN0cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICAgICBPTERJTlNUUl8yKG9sZGluc3RyLCAxLCAyKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAiLnB1c2hzZWN0aW9uIC5h bHRpbnN0cnVjdGlvbnMsIFwiYVwiLCBAcHJvZ2JpdHNcbiIgICAgICAgICAgICAgXAogICAgICAg ICBBTFRJTlNUUl9FTlRSWShmZWF0dXJlMSwgMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICAgICAgICBBTFRJTlNUUl9FTlRSWShmZWF0dXJlMiwgMikgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAiLnNlY3Rpb24gLmRpc2NhcmQs IFwiYVwiLCBAcHJvZ2JpdHNcbiIgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAi LmJ5dGUgIiBhbHRfdG90YWxfbGVuICJcbiIgLyogdG90YWxfbGVuIDw9IDI1NSAqLyAgICAgICAg ICAgICAgXAogICAgICAgICBESVNDQVJEX0VOVFJZKDEpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBESVNDQVJEX0VOVFJZKDIpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAiLnNl Y3Rpb24gLmFsdGluc3RyX3JlcGxhY2VtZW50LCBcImF4XCIsIEBwcm9nYml0c1xuIiAgICAgICAg ICAgXAotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0 Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRl dmVs