From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH 05/22] xen/arm: Consolidate CPU identification in cpufeature.{c, h} Date: Thu, 18 Oct 2018 14:20:52 +0100 Message-ID: <20181018132109.31192-6-julien.grall@arm.com> References: <20181018132109.31192-1-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181018132109.31192-1-julien.grall@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Julien Grall , sstabellini@kernel.org List-Id: xen-devel@lists.xenproject.org QXQgdGhlIG1vbWVudCwgQ1BVIElkZW50aWZpY2F0aW9uIGlzIHNwcmVhZCBhY2Nyb3NzIGNwdS5j LCBjcHVmZWF0dXJlLmMsCnByb2Nlc3Nvci5oLCBjcHVmZWF0dXJlLmguIEl0IHdvdWxkIGJlIGJl dHRlciB0byBrZWVwIGV2ZXJ5dGhpbmcKdG9nZXRoZXIgaW4gYSBzaW5nbGUgcGxhY2UuCgpTaWdu ZWQtb2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgotLS0KIHhlbi9h cmNoL2FybS9NYWtlZmlsZSAgICAgICAgICAgIHwgICAxIC0KIHhlbi9hcmNoL2FybS9jcHUuYyAg ICAgICAgICAgICAgIHwgIDY4IC0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC9hcm0vY3B1 ZmVhdHVyZS5jICAgICAgICB8ICA0MiArKysrKysrKysrKysKIHhlbi9hcmNoL2FybS92Y3ByZWcu YyAgICAgICAgICAgIHwgICAxICsKIHhlbi9pbmNsdWRlL2FzbS1hcm0vY3B1ZmVhdHVyZS5oIHwg MTM0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9h c20tYXJtL3Byb2Nlc3Nvci5oICB8IDEzNSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgMTc3IGluc2VydGlvbnMoKyksIDIwNCBkZWxldGlv bnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vY3B1LmMKCmRpZmYgLS1naXQg YS94ZW4vYXJjaC9hcm0vTWFrZWZpbGUgYi94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKaW5kZXggMzdm YTgyNjhiMy4uNmQ5MWJhN2M0NiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL01ha2VmaWxlCisr KyBiL3hlbi9hcmNoL2FybS9NYWtlZmlsZQpAQCAtNiw3ICs2LDYgQEAgc3ViZGlyLSQoQ09ORklH X0FDUEkpICs9IGFjcGkKIAogb2JqLSQoQ09ORklHX0hBU19BTFRFUk5BVElWRSkgKz0gYWx0ZXJu YXRpdmUubwogb2JqLXkgKz0gYm9vdGZkdC5pbml0Lm8KLW9iai15ICs9IGNwdS5vCiBvYmoteSAr PSBjcHVlcnJhdGEubwogb2JqLXkgKz0gY3B1ZmVhdHVyZS5vCiBvYmoteSArPSBkZWNvZGUubwpk aWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2NwdS5jIGIveGVuL2FyY2gvYXJtL2NwdS5jCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NTk1ZjFkNjNhLi4wMDAwMDAwMDAwCi0tLSBhL3hl bi9hcmNoL2FybS9jcHUuYworKysgL2Rldi9udWxsCkBAIC0xLDY4ICswLDAgQEAKLS8qCi0gKiBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0gKiAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK LSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKi8KLQot I2luY2x1ZGUgPHhlbi9pbml0Lmg+Ci0jaW5jbHVkZSA8eGVuL2xpYi5oPgotI2luY2x1ZGUgPHhl bi9zY2hlZC5oPgotCi0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotCi12b2lkIGlkZW50aWZ5 X2NwdShzdHJ1Y3QgY3B1aW5mb19hcm0gKmMpCi17Ci0gICAgICAgIGMtPm1pZHIuYml0cyA9IFJF QURfU1lTUkVHMzIoTUlEUl9FTDEpOwotICAgICAgICBjLT5tcGlkci5iaXRzID0gUkVBRF9TWVNS RUcoTVBJRFJfRUwxKTsKLQotI2lmZGVmIENPTkZJR19BUk1fNjQKLSAgICAgICAgYy0+cGZyNjQu Yml0c1swXSA9IFJFQURfU1lTUkVHNjQoSURfQUE2NFBGUjBfRUwxKTsKLSAgICAgICAgYy0+cGZy NjQuYml0c1sxXSA9IFJFQURfU1lTUkVHNjQoSURfQUE2NFBGUjFfRUwxKTsKLQotICAgICAgICBj LT5kYmc2NC5iaXRzWzBdID0gUkVBRF9TWVNSRUc2NChJRF9BQTY0REZSMF9FTDEpOwotICAgICAg ICBjLT5kYmc2NC5iaXRzWzFdID0gUkVBRF9TWVNSRUc2NChJRF9BQTY0REZSMV9FTDEpOwotCi0g ICAgICAgIGMtPmF1eDY0LmJpdHNbMF0gPSBSRUFEX1NZU1JFRzY0KElEX0FBNjRBRlIwX0VMMSk7 Ci0gICAgICAgIGMtPmF1eDY0LmJpdHNbMV0gPSBSRUFEX1NZU1JFRzY0KElEX0FBNjRBRlIxX0VM MSk7Ci0KLSAgICAgICAgYy0+bW02NC5iaXRzWzBdICA9IFJFQURfU1lTUkVHNjQoSURfQUE2NE1N RlIwX0VMMSk7Ci0gICAgICAgIGMtPm1tNjQuYml0c1sxXSAgPSBSRUFEX1NZU1JFRzY0KElEX0FB NjRNTUZSMV9FTDEpOwotCi0gICAgICAgIGMtPmlzYTY0LmJpdHNbMF0gPSBSRUFEX1NZU1JFRzY0 KElEX0FBNjRJU0FSMF9FTDEpOwotICAgICAgICBjLT5pc2E2NC5iaXRzWzFdID0gUkVBRF9TWVNS RUc2NChJRF9BQTY0SVNBUjFfRUwxKTsKLSNlbmRpZgotCi0gICAgICAgIGMtPnBmcjMyLmJpdHNb MF0gPSBSRUFEX1NZU1JFRzMyKElEX1BGUjBfRUwxKTsKLSAgICAgICAgYy0+cGZyMzIuYml0c1sx XSA9IFJFQURfU1lTUkVHMzIoSURfUEZSMV9FTDEpOwotCi0gICAgICAgIGMtPmRiZzMyLmJpdHNb MF0gPSBSRUFEX1NZU1JFRzMyKElEX0RGUjBfRUwxKTsKLQotICAgICAgICBjLT5hdXgzMi5iaXRz WzBdID0gUkVBRF9TWVNSRUczMihJRF9BRlIwX0VMMSk7Ci0KLSAgICAgICAgYy0+bW0zMi5iaXRz WzBdICA9IFJFQURfU1lTUkVHMzIoSURfTU1GUjBfRUwxKTsKLSAgICAgICAgYy0+bW0zMi5iaXRz WzFdICA9IFJFQURfU1lTUkVHMzIoSURfTU1GUjFfRUwxKTsKLSAgICAgICAgYy0+bW0zMi5iaXRz WzJdICA9IFJFQURfU1lTUkVHMzIoSURfTU1GUjJfRUwxKTsKLSAgICAgICAgYy0+bW0zMi5iaXRz WzNdICA9IFJFQURfU1lTUkVHMzIoSURfTU1GUjNfRUwxKTsKLQotICAgICAgICBjLT5pc2EzMi5i aXRzWzBdID0gUkVBRF9TWVNSRUczMihJRF9JU0FSMF9FTDEpOwotICAgICAgICBjLT5pc2EzMi5i aXRzWzFdID0gUkVBRF9TWVNSRUczMihJRF9JU0FSMV9FTDEpOwotICAgICAgICBjLT5pc2EzMi5i aXRzWzJdID0gUkVBRF9TWVNSRUczMihJRF9JU0FSMl9FTDEpOwotICAgICAgICBjLT5pc2EzMi5i aXRzWzNdID0gUkVBRF9TWVNSRUczMihJRF9JU0FSM19FTDEpOwotICAgICAgICBjLT5pc2EzMi5i aXRzWzRdID0gUkVBRF9TWVNSRUczMihJRF9JU0FSNF9FTDEpOwotICAgICAgICBjLT5pc2EzMi5i aXRzWzVdID0gUkVBRF9TWVNSRUczMihJRF9JU0FSNV9FTDEpOwotfQotCi0vKgotICogTG9jYWwg dmFyaWFibGVzOgotICogbW9kZTogQwotICogYy1maWxlLXN0eWxlOiAiQlNEIgotICogYy1iYXNp Yy1vZmZzZXQ6IDQKLSAqIGluZGVudC10YWJzLW1vZGU6IG5pbAotICogRW5kOgotICovCmRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vY3B1ZmVhdHVyZS5jIGIveGVuL2FyY2gvYXJtL2NwdWZlYXR1 cmUuYwppbmRleCAzYWFmZjRjMGU2Li40NDEyNmRiZjA3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9h cm0vY3B1ZmVhdHVyZS5jCisrKyBiL3hlbi9hcmNoL2FybS9jcHVmZWF0dXJlLmMKQEAgLTk3LDYg Kzk3LDQ4IEBAIGludCBlbmFibGVfbm9uYm9vdF9jcHVfY2Fwcyhjb25zdCBzdHJ1Y3QgYXJtX2Nw dV9jYXBhYmlsaXRpZXMgKmNhcHMpCiAgICAgcmV0dXJuIHJjOwogfQogCit2b2lkIGlkZW50aWZ5 X2NwdShzdHJ1Y3QgY3B1aW5mb19hcm0gKmMpCit7CisgICAgICAgIGMtPm1pZHIuYml0cyA9IFJF QURfU1lTUkVHMzIoTUlEUl9FTDEpOworICAgICAgICBjLT5tcGlkci5iaXRzID0gUkVBRF9TWVNS RUcoTVBJRFJfRUwxKTsKKworI2lmZGVmIENPTkZJR19BUk1fNjQKKyAgICAgICAgYy0+cGZyNjQu Yml0c1swXSA9IFJFQURfU1lTUkVHNjQoSURfQUE2NFBGUjBfRUwxKTsKKyAgICAgICAgYy0+cGZy NjQuYml0c1sxXSA9IFJFQURfU1lTUkVHNjQoSURfQUE2NFBGUjFfRUwxKTsKKworICAgICAgICBj LT5kYmc2NC5iaXRzWzBdID0gUkVBRF9TWVNSRUc2NChJRF9BQTY0REZSMF9FTDEpOworICAgICAg ICBjLT5kYmc2NC5iaXRzWzFdID0gUkVBRF9TWVNSRUc2NChJRF9BQTY0REZSMV9FTDEpOworCisg ICAgICAgIGMtPmF1eDY0LmJpdHNbMF0gPSBSRUFEX1NZU1JFRzY0KElEX0FBNjRBRlIwX0VMMSk7 CisgICAgICAgIGMtPmF1eDY0LmJpdHNbMV0gPSBSRUFEX1NZU1JFRzY0KElEX0FBNjRBRlIxX0VM MSk7CisKKyAgICAgICAgYy0+bW02NC5iaXRzWzBdICA9IFJFQURfU1lTUkVHNjQoSURfQUE2NE1N RlIwX0VMMSk7CisgICAgICAgIGMtPm1tNjQuYml0c1sxXSAgPSBSRUFEX1NZU1JFRzY0KElEX0FB NjRNTUZSMV9FTDEpOworCisgICAgICAgIGMtPmlzYTY0LmJpdHNbMF0gPSBSRUFEX1NZU1JFRzY0 KElEX0FBNjRJU0FSMF9FTDEpOworICAgICAgICBjLT5pc2E2NC5iaXRzWzFdID0gUkVBRF9TWVNS RUc2NChJRF9BQTY0SVNBUjFfRUwxKTsKKyNlbmRpZgorCisgICAgICAgIGMtPnBmcjMyLmJpdHNb MF0gPSBSRUFEX1NZU1JFRzMyKElEX1BGUjBfRUwxKTsKKyAgICAgICAgYy0+cGZyMzIuYml0c1sx XSA9IFJFQURfU1lTUkVHMzIoSURfUEZSMV9FTDEpOworCisgICAgICAgIGMtPmRiZzMyLmJpdHNb MF0gPSBSRUFEX1NZU1JFRzMyKElEX0RGUjBfRUwxKTsKKworICAgICAgICBjLT5hdXgzMi5iaXRz WzBdID0gUkVBRF9TWVNSRUczMihJRF9BRlIwX0VMMSk7CisKKyAgICAgICAgYy0+bW0zMi5iaXRz WzBdICA9IFJFQURfU1lTUkVHMzIoSURfTU1GUjBfRUwxKTsKKyAgICAgICAgYy0+bW0zMi5iaXRz WzFdICA9IFJFQURfU1lTUkVHMzIoSURfTU1GUjFfRUwxKTsKKyAgICAgICAgYy0+bW0zMi5iaXRz WzJdICA9IFJFQURfU1lTUkVHMzIoSURfTU1GUjJfRUwxKTsKKyAgICAgICAgYy0+bW0zMi5iaXRz WzNdICA9IFJFQURfU1lTUkVHMzIoSURfTU1GUjNfRUwxKTsKKworICAgICAgICBjLT5pc2EzMi5i aXRzWzBdID0gUkVBRF9TWVNSRUczMihJRF9JU0FSMF9FTDEpOworICAgICAgICBjLT5pc2EzMi5i aXRzWzFdID0gUkVBRF9TWVNSRUczMihJRF9JU0FSMV9FTDEpOworICAgICAgICBjLT5pc2EzMi5i aXRzWzJdID0gUkVBRF9TWVNSRUczMihJRF9JU0FSMl9FTDEpOworICAgICAgICBjLT5pc2EzMi5i aXRzWzNdID0gUkVBRF9TWVNSRUczMihJRF9JU0FSM19FTDEpOworICAgICAgICBjLT5pc2EzMi5i aXRzWzRdID0gUkVBRF9TWVNSRUczMihJRF9JU0FSNF9FTDEpOworICAgICAgICBjLT5pc2EzMi5i aXRzWzVdID0gUkVBRF9TWVNSRUczMihJRF9JU0FSNV9FTDEpOworfQorCiAvKgogICogTG9jYWwg dmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZjcHJlZy5j IGIveGVuL2FyY2gvYXJtL3ZjcHJlZy5jCmluZGV4IGIwNGQ5OTZmZDMuLjdiNzgzZTRiY2MgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS92Y3ByZWcuYworKysgYi94ZW4vYXJjaC9hcm0vdmNwcmVn LmMKQEAgLTE4LDYgKzE4LDcgQEAKIAogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgogCisjaW5jbHVk ZSA8YXNtL2NwdWZlYXR1cmUuaD4KICNpbmNsdWRlIDxhc20vY3ByZWdzLmg+CiAjaW5jbHVkZSA8 YXNtL2N1cnJlbnQuaD4KICNpbmNsdWRlIDxhc20vcmVncy5oPgpkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUvYXNtLWFybS9jcHVmZWF0dXJlLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2NwdWZlYXR1 cmUuaAppbmRleCAyZDgyMjY0NDI3Li4xN2RlOTI4NDY3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS9hc20tYXJtL2NwdWZlYXR1cmUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2NwdWZlYXR1 cmUuaApAQCAtMTA0LDYgKzEwNCwxNDAgQEAgdm9pZCB1cGRhdGVfY3B1X2NhcGFiaWxpdGllcyhj b25zdCBzdHJ1Y3QgYXJtX2NwdV9jYXBhYmlsaXRpZXMgKmNhcHMsCiB2b2lkIGVuYWJsZV9jcHVf Y2FwYWJpbGl0aWVzKGNvbnN0IHN0cnVjdCBhcm1fY3B1X2NhcGFiaWxpdGllcyAqY2Fwcyk7CiBp bnQgZW5hYmxlX25vbmJvb3RfY3B1X2NhcHMoY29uc3Qgc3RydWN0IGFybV9jcHVfY2FwYWJpbGl0 aWVzICpjYXBzKTsKIAorLyoKKyAqIGNhcGFiaWxpdGllcyBvZiBDUFVzCisgKi8KK3N0cnVjdCBj cHVpbmZvX2FybSB7CisgICAgdW5pb24geworICAgICAgICB1aW50MzJfdCBiaXRzOworICAgICAg ICBzdHJ1Y3QgeworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyByZXZpc2lvbjo0OworICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBwYXJ0X251bWJlcjoxMjsKKyAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgYXJjaGl0ZWN0dXJlOjQ7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHZhcmlhbnQ6 NDsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgaW1wbGVtZW50ZXI6ODsKKyAgICAgICAgfTsK KyAgICB9IG1pZHI7CisgICAgdW5pb24geworICAgICAgICByZWdpc3Rlcl90IGJpdHM7CisgICAg ICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFmZjA6ODsKKyAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgYWZmMTo4OworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBhZmYy Ojg7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG10OjE7IC8qIE11bHRpLXRocmVhZCwgaWZm IE1QID09IDEgKi8KKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgX19yZXMwOjU7CisgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIHVwOjE7IC8qIFVQIHN5c3RlbSwgaWZmIE1QID09IDEgKi8KKyAg ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbXA6MTsgLyogTVAgZXh0ZW5zaW9ucyAqLworCisjaWZk ZWYgQ09ORklHX0FSTV82NAorICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBhZmYzOjg7CisgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIF9fcmVzMToyNDsKKyNlbmRpZgorICAgICAgICB9OworICAg IH0gbXBpZHI7CisKKyNpZmRlZiBDT05GSUdfQVJNXzY0CisgICAgLyogNjQtYml0IENQVUlEIHJl Z2lzdGVycy4gKi8KKyAgICB1bmlvbiB7CisgICAgICAgIHVpbnQ2NF90IGJpdHNbMl07CisgICAg ICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGVsMDo0OworICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyBlbDE6NDsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZWwyOjQ7 CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGVsMzo0OworICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBmcDo0OyAgIC8qIEZsb2F0aW5nIFBvaW50ICovCisgICAgICAgICAgICB1bnNpZ25lZCBs b25nIHNpbWQ6NDsgLyogQWR2YW5jZWQgU0lNRCAqLworICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyBnaWM6NDsgIC8qIEdJQyBzdXBwb3J0ICovCisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIF9f cmVzMDoyODsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgY3N2Mjo0OworICAgICAgICAgICAg dW5zaWduZWQgbG9uZyBfX3JlczE6NDsKKyAgICAgICAgfTsKKyAgICB9IHBmcjY0OworCisgICAg c3RydWN0IHsKKyAgICAgICAgdWludDY0X3QgYml0c1syXTsKKyAgICB9IGRiZzY0OworCisgICAg c3RydWN0IHsKKyAgICAgICAgdWludDY0X3QgYml0c1syXTsKKyAgICB9IGF1eDY0OworCisgICAg dW5pb24geworICAgICAgICB1aW50NjRfdCBiaXRzWzJdOworICAgICAgICBzdHJ1Y3QgeworICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBwYV9yYW5nZTo0OworICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBhc2lkX2JpdHM6NDsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYmlnZW5kOjQ7Cisg ICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNlY3VyZV9uczo0OworICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyBiaWdlbmRfZWwwOjQ7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHRncmFudWxl XzE2Szo0OworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB0Z3JhbnVsZV82NEs6NDsKKyAgICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgdGdyYW51bGVfNEs6NDsKKyAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgX19yZXMwOjMyOworCisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGhhZmRiczo0Owor ICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB2bWlkX2JpdHM6NDsKKyAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgdmg6NDsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgaHBkczo0OworICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBsbzo0OworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBwYW46 NDsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgX19yZXMxOjg7CisgICAgICAgICAgICB1bnNp Z25lZCBsb25nIF9fcmVzMjozMjsKKyAgICAgICAgfTsKKyAgICB9IG1tNjQ7CisKKyAgICBzdHJ1 Y3QgeworICAgICAgICB1aW50NjRfdCBiaXRzWzJdOworICAgIH0gaXNhNjQ7CisKKyNlbmRpZgor CisgICAgLyoKKyAgICAgKiAzMi1iaXQgQ1BVSUQgcmVnaXN0ZXJzLiBPbiBBUk12OCB0aGVzZSBk ZXNjcmliZSB0aGUgcHJvcGVydGllcworICAgICAqIHdoZW4gcnVubmluZyBpbiAzMi1iaXQgbW9k ZS4KKyAgICAgKi8KKyAgICB1bmlvbiB7CisgICAgICAgIHVpbnQzMl90IGJpdHNbMl07CisgICAg ICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFybTo0OworICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyB0aHVtYjo0OworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBqYXpl bGxlOjQ7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHRodW1iZWU6NDsKKyAgICAgICAgICAg IHVuc2lnbmVkIGxvbmcgX19yZXMwOjE2OworCisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBy b2dtb2RlbDo0OworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzZWN1cml0eTo0OworICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBtcHJvZmlsZTo0OworICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyB2aXJ0OjQ7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGdlbnRpbWVyOjQ7CisgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIF9fcmVzMToxMjsKKyAgICAgICAgfTsKKyAgICB9IHBmcjMyOwor CisgICAgc3RydWN0IHsKKyAgICAgICAgdWludDMyX3QgYml0c1sxXTsKKyAgICB9IGRiZzMyOwor CisgICAgc3RydWN0IHsKKyAgICAgICAgdWludDMyX3QgYml0c1sxXTsKKyAgICB9IGF1eDMyOwor CisgICAgc3RydWN0IHsKKyAgICAgICAgdWludDMyX3QgYml0c1s0XTsKKyAgICB9IG1tMzI7CisK KyAgICBzdHJ1Y3QgeworICAgICAgICB1aW50MzJfdCBiaXRzWzZdOworICAgIH0gaXNhMzI7Cit9 OworCitleHRlcm4gc3RydWN0IGNwdWluZm9fYXJtIGJvb3RfY3B1X2RhdGE7CisKK2V4dGVybiB2 b2lkIGlkZW50aWZ5X2NwdShzdHJ1Y3QgY3B1aW5mb19hcm0gKik7CisKK2V4dGVybiBzdHJ1Y3Qg Y3B1aW5mb19hcm0gY3B1X2RhdGFbXTsKKyNkZWZpbmUgY3VycmVudF9jcHVfZGF0YSBjcHVfZGF0 YVtzbXBfcHJvY2Vzc29yX2lkKCldCisKICNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KIAogI2Vu ZGlmCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL3Byb2Nlc3Nvci5oIGIveGVuL2lu Y2x1ZGUvYXNtLWFybS9wcm9jZXNzb3IuaAppbmRleCBlZmEzM2I0NjY1Li5mN2EyZTlhM2FkIDEw MDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3Byb2Nlc3Nvci5oCisrKyBiL3hlbi9pbmNs dWRlL2FzbS1hcm0vcHJvY2Vzc29yLmgKQEAgLTM1MCwxNDEgKzM1MCw2IEBACiAKICNpZm5kZWYg X19BU1NFTUJMWV9fCiAKLXN0cnVjdCBjcHVpbmZvX2FybSB7Ci0gICAgdW5pb24gewotICAgICAg ICB1aW50MzJfdCBiaXRzOwotICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgdW5zaWduZWQg bG9uZyByZXZpc2lvbjo0OwotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBwYXJ0X251bWJlcjox MjsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYXJjaGl0ZWN0dXJlOjQ7Ci0gICAgICAgICAg ICB1bnNpZ25lZCBsb25nIHZhcmlhbnQ6NDsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgaW1w bGVtZW50ZXI6ODsKLSAgICAgICAgfTsKLSAgICB9IG1pZHI7Ci0gICAgdW5pb24gewotICAgICAg ICByZWdpc3Rlcl90IGJpdHM7Ci0gICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICB1bnNpZ25l ZCBsb25nIGFmZjA6ODsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYWZmMTo4OwotICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBhZmYyOjg7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIG10 OjE7IC8qIE11bHRpLXRocmVhZCwgaWZmIE1QID09IDEgKi8KLSAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgX19yZXMwOjU7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIHVwOjE7IC8qIFVQIHN5 c3RlbSwgaWZmIE1QID09IDEgKi8KLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbXA6MTsgLyog TVAgZXh0ZW5zaW9ucyAqLwotCi0jaWZkZWYgQ09ORklHX0FSTV82NAotICAgICAgICAgICAgdW5z aWduZWQgbG9uZyBhZmYzOjg7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIF9fcmVzMToyNDsK LSNlbmRpZgotICAgICAgICB9OwotICAgIH0gbXBpZHI7Ci0KLSNpZmRlZiBDT05GSUdfQVJNXzY0 Ci0gICAgLyogNjQtYml0IENQVUlEIHJlZ2lzdGVycy4gKi8KLSAgICB1bmlvbiB7Ci0gICAgICAg IHVpbnQ2NF90IGJpdHNbMl07Ci0gICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICB1bnNpZ25l ZCBsb25nIGVsMDo0OwotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBlbDE6NDsKLSAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgZWwyOjQ7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIGVsMzo0 OwotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmcDo0OyAgIC8qIEZsb2F0aW5nIFBvaW50ICov Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpbWQ6NDsgLyogQWR2YW5jZWQgU0lNRCAqLwot ICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBnaWM6NDsgIC8qIEdJQyBzdXBwb3J0ICovCi0gICAg ICAgICAgICB1bnNpZ25lZCBsb25nIF9fcmVzMDoyODsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgY3N2Mjo0OwotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBfX3JlczE6NDsKLSAgICAgICAg fTsKLSAgICB9IHBmcjY0OwotCi0gICAgc3RydWN0IHsKLSAgICAgICAgdWludDY0X3QgYml0c1sy XTsKLSAgICB9IGRiZzY0OwotCi0gICAgc3RydWN0IHsKLSAgICAgICAgdWludDY0X3QgYml0c1sy XTsKLSAgICB9IGF1eDY0OwotCi0gICAgdW5pb24gewotICAgICAgICB1aW50NjRfdCBiaXRzWzJd OwotICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBwYV9yYW5nZTo0 OwotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBhc2lkX2JpdHM6NDsKLSAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgYmlnZW5kOjQ7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNlY3VyZV9u czo0OwotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBiaWdlbmRfZWwwOjQ7Ci0gICAgICAgICAg ICB1bnNpZ25lZCBsb25nIHRncmFudWxlXzE2Szo0OwotICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyB0Z3JhbnVsZV82NEs6NDsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdGdyYW51bGVfNEs6 NDsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgX19yZXMwOjMyOwotCi0gICAgICAgICAgICB1 bnNpZ25lZCBsb25nIGhhZmRiczo0OwotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB2bWlkX2Jp dHM6NDsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdmg6NDsKLSAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgaHBkczo0OwotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsbzo0OwotICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBwYW46NDsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgX19y ZXMxOjg7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIF9fcmVzMjozMjsKLSAgICAgICAgfTsK LSAgICB9IG1tNjQ7Ci0KLSAgICBzdHJ1Y3QgewotICAgICAgICB1aW50NjRfdCBiaXRzWzJdOwot ICAgIH0gaXNhNjQ7Ci0KLSNlbmRpZgotCi0gICAgLyoKLSAgICAgKiAzMi1iaXQgQ1BVSUQgcmVn aXN0ZXJzLiBPbiBBUk12OCB0aGVzZSBkZXNjcmliZSB0aGUgcHJvcGVydGllcwotICAgICAqIHdo ZW4gcnVubmluZyBpbiAzMi1iaXQgbW9kZS4KLSAgICAgKi8KLSAgICB1bmlvbiB7Ci0gICAgICAg IHVpbnQzMl90IGJpdHNbMl07Ci0gICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICB1bnNpZ25l ZCBsb25nIGFybTo0OwotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB0aHVtYjo0OwotICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBqYXplbGxlOjQ7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25n IHRodW1iZWU6NDsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgX19yZXMwOjE2OwotCi0gICAg ICAgICAgICB1bnNpZ25lZCBsb25nIHByb2dtb2RlbDo0OwotICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBzZWN1cml0eTo0OwotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtcHJvZmlsZTo0Owot ICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB2aXJ0OjQ7Ci0gICAgICAgICAgICB1bnNpZ25lZCBs b25nIGdlbnRpbWVyOjQ7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIF9fcmVzMToxMjsKLSAg ICAgICAgfTsKLSAgICB9IHBmcjMyOwotCi0gICAgc3RydWN0IHsKLSAgICAgICAgdWludDMyX3Qg Yml0c1sxXTsKLSAgICB9IGRiZzMyOwotCi0gICAgc3RydWN0IHsKLSAgICAgICAgdWludDMyX3Qg Yml0c1sxXTsKLSAgICB9IGF1eDMyOwotCi0gICAgc3RydWN0IHsKLSAgICAgICAgdWludDMyX3Qg Yml0c1s0XTsKLSAgICB9IG1tMzI7Ci0KLSAgICBzdHJ1Y3QgewotICAgICAgICB1aW50MzJfdCBi aXRzWzZdOwotICAgIH0gaXNhMzI7Ci19OwotCi0vKgotICogY2FwYWJpbGl0aWVzIG9mIENQVXMK LSAqLwotCi1leHRlcm4gc3RydWN0IGNwdWluZm9fYXJtIGJvb3RfY3B1X2RhdGE7Ci0KLWV4dGVy biB2b2lkIGlkZW50aWZ5X2NwdShzdHJ1Y3QgY3B1aW5mb19hcm0gKik7Ci0KLWV4dGVybiBzdHJ1 Y3QgY3B1aW5mb19hcm0gY3B1X2RhdGFbXTsKLSNkZWZpbmUgY3VycmVudF9jcHVfZGF0YSBjcHVf ZGF0YVtzbXBfcHJvY2Vzc29yX2lkKCldCi0KIGV4dGVybiByZWdpc3Rlcl90IF9fY3B1X2xvZ2lj YWxfbWFwW107CiAjZGVmaW5lIGNwdV9sb2dpY2FsX21hcChjcHUpIF9fY3B1X2xvZ2ljYWxfbWFw W2NwdV0KIAotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJv amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hl bi1kZXZlbA==