From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH 1/3] libxl: add framework for device types Date: Tue, 21 Jun 2016 16:24:49 +0200 Message-ID: <1466519091-29348-2-git-send-email-jgross@suse.com> References: <1466519091-29348-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1466519091-29348-1-git-send-email-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Juergen Gross , wei.liu2@citrix.com, ian.jackson@eu.citrix.com List-Id: xen-devel@lists.xenproject.org SW5zdGVhZCBvZiBkdXBsaWNhdGUgY29kaW5nIGZvciBlYWNoIGRldmljZSB0eXBlICh2dHBtcywg dXNiY3RybHMsIC4uLikKZXNwZWNpYWxseSBvbiBkb21haW4gY3JlYXRpb24gaW50cm9kdWNlIGEg ZnJhbWV3b3JrIGZvciB0aGF0IHB1cnBvc2UuCgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3Nz IDxqZ3Jvc3NAc3VzZS5jb20+Ci0tLQogdG9vbHMvbGlieGwvbGlieGwuYyAgICAgICAgICB8ICAx MiArKysrCiB0b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYyAgIHwgMTYzICsrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFs LmggfCAgMTMgKysrKwogdG9vbHMvbGlieGwvbGlieGxfcHZ1c2IuYyAgICB8ICAxMyArKysrCiA0 IGZpbGVzIGNoYW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDExNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS90b29scy9saWJ4bC9saWJ4bC5jIGIvdG9vbHMvbGlieGwvbGlieGwuYwppbmRleCAx YzgxMjM5Li5kZjk0ZjJlIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bC5jCisrKyBiL3Rv b2xzL2xpYnhsL2xpYnhsLmMKQEAgLTc0MzQsNiArNzQzNCwxOCBAQCBvdXQ6CiAgICAgcmV0dXJu IHJjOwogfQogCitzdHJ1Y3QgbGlieGxfZGV2aWNlX3R5cGUgbGlieGxfX25pY19kZXZ0eXBlID0g eworICAgIC50eXBlICAgICAgID0gIm5pYyIsCisgICAgLm51bV9vZmZzZXQgPSBvZmZzZXRvZihs aWJ4bF9kb21haW5fY29uZmlnLCBudW1fbmljcyksCisgICAgLmFkZCAgICAgICAgPSBsaWJ4bF9f YWRkX25pY3MsCit9OworCitzdHJ1Y3QgbGlieGxfZGV2aWNlX3R5cGUgbGlieGxfX3Z0cG1fZGV2 dHlwZSA9IHsKKyAgICAudHlwZSAgICAgICA9ICJ2dHBtIiwKKyAgICAubnVtX29mZnNldCA9IG9m ZnNldG9mKGxpYnhsX2RvbWFpbl9jb25maWcsIG51bV92dHBtcyksCisgICAgLmFkZCAgICAgICAg PSBsaWJ4bF9fYWRkX3Z0cG1zLAorfTsKKwogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1v ZGU6IEMKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jIGIvdG9vbHMvbGli eGwvbGlieGxfY3JlYXRlLmMKaW5kZXggMWI5OTQ3Mi4uYmIwZjUzNSAxMDA2NDQKLS0tIGEvdG9v bHMvbGlieGwvbGlieGxfY3JlYXRlLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMK QEAgLTc0MiwxMiArNzQyLDYgQEAgc3RhdGljIHZvaWQgZG9tY3JlYXRlX2Jvb3Rsb2FkZXJfZG9u ZShsaWJ4bF9fZWdjICplZ2MsCiBzdGF0aWMgdm9pZCBkb21jcmVhdGVfbGF1bmNoX2RtKGxpYnhs X19lZ2MgKmVnYywgbGlieGxfX211bHRpZGV2ICphb2RldnMsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCByZXQpOwogCi1zdGF0aWMgdm9pZCBkb21jcmVhdGVfYXR0YWNoX3Z0 cG1zKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX211bHRpZGV2ICptdWx0aWRldiwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJldCk7Ci1zdGF0aWMgdm9pZCBkb21jcmVh dGVfYXR0YWNoX3VzYmN0cmxzKGxpYnhsX19lZ2MgKmVnYywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGlieGxfX211bHRpZGV2ICptdWx0aWRldiwgaW50IHJldCk7Ci1z dGF0aWMgdm9pZCBkb21jcmVhdGVfYXR0YWNoX3VzYmRldnMobGlieGxfX2VnYyAqZWdjLCBsaWJ4 bF9fbXVsdGlkZXYgKm11bHRpZGV2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCByZXQpOwogc3RhdGljIHZvaWQgZG9tY3JlYXRlX2F0dGFjaF9wY2kobGlieGxfX2Vn YyAqZWdjLCBsaWJ4bF9fbXVsdGlkZXYgKmFvZGV2cywKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCByZXQpOwogc3RhdGljIHZvaWQgZG9tY3JlYXRlX2F0dGFjaF9kdGRldihs aWJ4bF9fZWdjICplZ2MsCkBAIC0xNDA3LDYgKzE0MDEsNTMgQEAgc3RhdGljIHZvaWQgZG9tY3Jl YXRlX2xhdW5jaF9kbShsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19tdWx0aWRldiAqbXVsdGlkZXYs CiAgICAgZG9tY3JlYXRlX2NvbXBsZXRlKGVnYywgZGNzLCByZXQpOwogfQogCitzdGF0aWMgc3Ry dWN0IGxpYnhsX2RldmljZV90eXBlICpkZXZpY2VfdHlwZV90YmxbXSA9IHsKKyAgICAmbGlieGxf X25pY19kZXZ0eXBlLAorICAgICZsaWJ4bF9fdnRwbV9kZXZ0eXBlLAorICAgICZsaWJ4bF9fdXNi Y3RybF9kZXZ0eXBlLAorICAgICZsaWJ4bF9fdXNiZGV2X2RldnR5cGUsCit9OworCitzdGF0aWMg dm9pZCBkb21jcmVhdGVfYXR0YWNoX2RldmljZXMobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19tdWx0aWRldiAqbXVsdGlkZXYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJldCkKK3sKKyAgICBsaWJ4 bF9fZG9tYWluX2NyZWF0ZV9zdGF0ZSAqZGNzID0gQ09OVEFJTkVSX09GKG11bHRpZGV2LCAqZGNz LCBtdWx0aWRldik7CisgICAgU1RBVEVfQU9fR0MoZGNzLT5hbyk7CisgICAgaW50IGRvbWlkID0g ZGNzLT5ndWVzdF9kb21pZDsKKyAgICBsaWJ4bF9kb21haW5fY29uZmlnICpjb25zdCBkX2NvbmZp ZyA9IGRjcy0+Z3Vlc3RfY29uZmlnOworICAgIHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSAqZHQ7 CisKKyAgICBpZiAocmV0KSB7CisgICAgICAgIExPRyhFUlJPUiwgInVuYWJsZSB0byBhZGQgJXMg ZGV2aWNlcyIsCisgICAgICAgICAgICBkZXZpY2VfdHlwZV90YmxbZGNzLT5kZXZpY2VfdHlwZV9p ZHhdLT50eXBlKTsKKyAgICAgICAgZ290byBlcnJvcl9vdXQ7CisgICAgfQorCisgICAgZGNzLT5k ZXZpY2VfdHlwZV9pZHgrKzsKKyAgICBpZiAoZGNzLT5kZXZpY2VfdHlwZV9pZHggPCBBUlJBWV9T SVpFKGRldmljZV90eXBlX3RibCkpIHsKKyAgICAgICAgZHQgPSBkZXZpY2VfdHlwZV90YmxbZGNz LT5kZXZpY2VfdHlwZV9pZHhdOworICAgICAgICBpZiAoKihpbnQgKikoKHZvaWQgKilkX2NvbmZp ZyArIGR0LT5udW1fb2Zmc2V0KSA+IDApIHsKKyAgICAgICAgICAgIC8qIEF0dGFjaCBkZXZpY2Vz ICovCisgICAgICAgICAgICBsaWJ4bF9fbXVsdGlkZXZfYmVnaW4oYW8sICZkY3MtPm11bHRpZGV2 KTsKKyAgICAgICAgICAgIGRjcy0+bXVsdGlkZXYuY2FsbGJhY2sgPSBkb21jcmVhdGVfYXR0YWNo X2RldmljZXM7CisgICAgICAgICAgICBkdC0+YWRkKGVnYywgYW8sIGRvbWlkLCBkX2NvbmZpZywg JmRjcy0+bXVsdGlkZXYpOworICAgICAgICAgICAgbGlieGxfX211bHRpZGV2X3ByZXBhcmVkKGVn YywgJmRjcy0+bXVsdGlkZXYsIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK KyAgICAgICAgZG9tY3JlYXRlX2F0dGFjaF9kZXZpY2VzKGVnYywgJmRjcy0+bXVsdGlkZXYsIDAp OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZG9tY3JlYXRlX2F0dGFjaF9wY2koZWdj LCBtdWx0aWRldiwgMCk7CisgICAgcmV0dXJuOworCitlcnJvcl9vdXQ6CisgICAgYXNzZXJ0KHJl dCk7CisgICAgZG9tY3JlYXRlX2NvbXBsZXRlKGVnYywgZGNzLCByZXQpOworfQorCiBzdGF0aWMg dm9pZCBkb21jcmVhdGVfZGV2bW9kZWxfc3RhcnRlZChsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fZG1fc3Bhd25fc3RhdGUgKmRt c3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmV0KQpAQCAt MTQzMCwxMTMgKzE0NzEsOCBAQCBzdGF0aWMgdm9pZCBkb21jcmVhdGVfZGV2bW9kZWxfc3RhcnRl ZChsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvKiBQbHVnIG5pYyBp bnRlcmZhY2VzICovCi0gICAgaWYgKGRfY29uZmlnLT5udW1fbmljcyA+IDApIHsKLSAgICAgICAg LyogQXR0YWNoIG5pY3MgKi8KLSAgICAgICAgbGlieGxfX211bHRpZGV2X2JlZ2luKGFvLCAmZGNz LT5tdWx0aWRldik7Ci0gICAgICAgIGRjcy0+bXVsdGlkZXYuY2FsbGJhY2sgPSBkb21jcmVhdGVf YXR0YWNoX3Z0cG1zOwotICAgICAgICBsaWJ4bF9fYWRkX25pY3MoZWdjLCBhbywgZG9taWQsIGRf Y29uZmlnLCAmZGNzLT5tdWx0aWRldik7Ci0gICAgICAgIGxpYnhsX19tdWx0aWRldl9wcmVwYXJl ZChlZ2MsICZkY3MtPm11bHRpZGV2LCAwKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg IGRvbWNyZWF0ZV9hdHRhY2hfdnRwbXMoZWdjLCAmZGNzLT5tdWx0aWRldiwgMCk7Ci0gICAgcmV0 dXJuOwotCi1lcnJvcl9vdXQ6Ci0gICAgYXNzZXJ0KHJldCk7Ci0gICAgZG9tY3JlYXRlX2NvbXBs ZXRlKGVnYywgZGNzLCByZXQpOwotfQotCi1zdGF0aWMgdm9pZCBkb21jcmVhdGVfYXR0YWNoX3Z0 cG1zKGxpYnhsX19lZ2MgKmVnYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfX211bHRpZGV2ICptdWx0aWRldiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IHJldCkKLXsKLSAgIGxpYnhsX19kb21haW5fY3JlYXRlX3N0YXRlICpkY3MgPSBD T05UQUlORVJfT0YobXVsdGlkZXYsICpkY3MsIG11bHRpZGV2KTsKLSAgIFNUQVRFX0FPX0dDKGRj cy0+YW8pOwotICAgaW50IGRvbWlkID0gZGNzLT5ndWVzdF9kb21pZDsKLQotICAgbGlieGxfZG9t YWluX2NvbmZpZyogY29uc3QgZF9jb25maWcgPSBkY3MtPmd1ZXN0X2NvbmZpZzsKLQotICAgaWYo cmV0KSB7Ci0gICAgICAgTE9HKEVSUk9SLCAidW5hYmxlIHRvIGFkZCBuaWMgZGV2aWNlcyIpOwot ICAgICAgIGdvdG8gZXJyb3Jfb3V0OwotICAgfQotCi0gICAgLyogUGx1ZyB2dHBtIGRldmljZXMg Ki8KLSAgIGlmIChkX2NvbmZpZy0+bnVtX3Z0cG1zID4gMCkgewotICAgICAgIC8qIEF0dGFjaCB2 dHBtcyAqLwotICAgICAgIGxpYnhsX19tdWx0aWRldl9iZWdpbihhbywgJmRjcy0+bXVsdGlkZXYp OwotICAgICAgIGRjcy0+bXVsdGlkZXYuY2FsbGJhY2sgPSBkb21jcmVhdGVfYXR0YWNoX3VzYmN0 cmxzOwotICAgICAgIGxpYnhsX19hZGRfdnRwbXMoZWdjLCBhbywgZG9taWQsIGRfY29uZmlnLCAm ZGNzLT5tdWx0aWRldik7Ci0gICAgICAgbGlieGxfX211bHRpZGV2X3ByZXBhcmVkKGVnYywgJmRj cy0+bXVsdGlkZXYsIDApOwotICAgICAgIHJldHVybjsKLSAgIH0KLQotICAgZG9tY3JlYXRlX2F0 dGFjaF91c2JjdHJscyhlZ2MsIG11bHRpZGV2LCAwKTsKLSAgIHJldHVybjsKLQotZXJyb3Jfb3V0 OgotICAgYXNzZXJ0KHJldCk7Ci0gICBkb21jcmVhdGVfY29tcGxldGUoZWdjLCBkY3MsIHJldCk7 Ci19Ci0KLXN0YXRpYyB2b2lkIGRvbWNyZWF0ZV9hdHRhY2hfdXNiY3RybHMobGlieGxfX2VnYyAq ZWdjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fbXVsdGlk ZXYgKm11bHRpZGV2LCBpbnQgcmV0KQotewotICAgIGxpYnhsX19kb21haW5fY3JlYXRlX3N0YXRl ICpkY3MgPSBDT05UQUlORVJfT0YobXVsdGlkZXYsICpkY3MsIG11bHRpZGV2KTsKLSAgICBTVEFU RV9BT19HQyhkY3MtPmFvKTsKLSAgICBpbnQgZG9taWQgPSBkY3MtPmd1ZXN0X2RvbWlkOwotCi0g ICAgbGlieGxfZG9tYWluX2NvbmZpZyAqY29uc3QgZF9jb25maWcgPSBkY3MtPmd1ZXN0X2NvbmZp ZzsKLQotICAgIGlmIChyZXQpIHsKLSAgICAgICAgTE9HKEVSUk9SLCAidW5hYmxlIHRvIGFkZCB2 dHBtIGRldmljZXMiKTsKLSAgICAgICAgZ290byBlcnJvcl9vdXQ7Ci0gICAgfQotCi0gICAgaWYg KGRfY29uZmlnLT5udW1fdXNiY3RybHMgPiAwKSB7Ci0gICAgICAgIC8qIEF0dGFjaCB1c2JjdHJs cyAqLwotICAgICAgICBsaWJ4bF9fbXVsdGlkZXZfYmVnaW4oYW8sICZkY3MtPm11bHRpZGV2KTsK LSAgICAgICAgZGNzLT5tdWx0aWRldi5jYWxsYmFjayA9IGRvbWNyZWF0ZV9hdHRhY2hfdXNiZGV2 czsKLSAgICAgICAgbGlieGxfX2FkZF91c2JjdHJscyhlZ2MsIGFvLCBkb21pZCwgZF9jb25maWcs ICZkY3MtPm11bHRpZGV2KTsKLSAgICAgICAgbGlieGxfX211bHRpZGV2X3ByZXBhcmVkKGVnYywg JmRjcy0+bXVsdGlkZXYsIDApOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZG9tY3Jl YXRlX2F0dGFjaF91c2JkZXZzKGVnYywgbXVsdGlkZXYsIDApOwotICAgIHJldHVybjsKLQotZXJy b3Jfb3V0OgotICAgIGFzc2VydChyZXQpOwotICAgIGRvbWNyZWF0ZV9jb21wbGV0ZShlZ2MsIGRj cywgcmV0KTsKLX0KLQotCi1zdGF0aWMgdm9pZCBkb21jcmVhdGVfYXR0YWNoX3VzYmRldnMobGli eGxfX2VnYyAqZWdjLCBsaWJ4bF9fbXVsdGlkZXYgKm11bHRpZGV2LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgcmV0KQotewotICAgIGxpYnhsX19kb21haW5fY3JlYXRlX3N0 YXRlICpkY3MgPSBDT05UQUlORVJfT0YobXVsdGlkZXYsICpkY3MsIG11bHRpZGV2KTsKLSAgICBT VEFURV9BT19HQyhkY3MtPmFvKTsKLSAgICBpbnQgZG9taWQgPSBkY3MtPmd1ZXN0X2RvbWlkOwot Ci0gICAgbGlieGxfZG9tYWluX2NvbmZpZyAqY29uc3QgZF9jb25maWcgPSBkY3MtPmd1ZXN0X2Nv bmZpZzsKLQotICAgIGlmIChyZXQpIHsKLSAgICAgICAgTE9HKEVSUk9SLCAidW5hYmxlIHRvIGFk ZCB1c2JjdHJsIGRldmljZXMiKTsKLSAgICAgICAgZ290byBlcnJvcl9vdXQ7Ci0gICAgfQotCi0g ICAgaWYgKGRfY29uZmlnLT5udW1fdXNiZGV2cyA+IDApIHsKLSAgICAgICAgLyogQXR0YWNoIHVz YmN0cmxzICovCi0gICAgICAgIGxpYnhsX19tdWx0aWRldl9iZWdpbihhbywgJmRjcy0+bXVsdGlk ZXYpOwotICAgICAgICBkY3MtPm11bHRpZGV2LmNhbGxiYWNrID0gZG9tY3JlYXRlX2F0dGFjaF9w Y2k7Ci0gICAgICAgIGxpYnhsX19hZGRfdXNiZGV2cyhlZ2MsIGFvLCBkb21pZCwgZF9jb25maWcs ICZkY3MtPm11bHRpZGV2KTsKLSAgICAgICAgbGlieGxfX211bHRpZGV2X3ByZXBhcmVkKGVnYywg JmRjcy0+bXVsdGlkZXYsIDApOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZG9tY3Jl YXRlX2F0dGFjaF9wY2koZWdjLCBtdWx0aWRldiwgMCk7CisgICAgZGNzLT5kZXZpY2VfdHlwZV9p ZHggPSAtMTsKKyAgICBkb21jcmVhdGVfYXR0YWNoX2RldmljZXMoZWdjLCAmZGNzLT5tdWx0aWRl diwgMCk7CiAgICAgcmV0dXJuOwogCiBlcnJvcl9vdXQ6CkBAIC0xNTU2LDcgKzE0OTIsNiBAQCBz dGF0aWMgdm9pZCBkb21jcmVhdGVfYXR0YWNoX3BjaShsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19t dWx0aWRldiAqbXVsdGlkZXYsCiAgICAgbGlieGxfZG9tYWluX2NvbmZpZyAqY29uc3QgZF9jb25m aWcgPSBkY3MtPmd1ZXN0X2NvbmZpZzsKIAogICAgIGlmIChyZXQpIHsKLSAgICAgICAgTE9HKEVS Uk9SLCAidW5hYmxlIHRvIGFkZCB1c2IgZGV2aWNlcyIpOwogICAgICAgICBnb3RvIGVycm9yX291 dDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggYi90 b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCmluZGV4IGU3YWI4NWQuLjI2MDNiMzMgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKKysrIGIvdG9vbHMvbGlieGwvbGli eGxfaW50ZXJuYWwuaApAQCAtMzM4OSw2ICszMzg5LDE4IEBAIF9oaWRkZW4gdm9pZCBsaWJ4bF9f Ym9vdGxvYWRlcl9pbml0KGxpYnhsX19ib290bG9hZGVyX3N0YXRlICpibCk7CiAgKiBJZiBjYWxs YmFjayBpcyBwYXNzZWQgcmM9PTAsIHdpbGwgaGF2ZSB1cGRhdGVkIHN0LT5pbmZvIGFwcHJvcHJp YXRlbHkgKi8KIF9oaWRkZW4gdm9pZCBsaWJ4bF9fYm9vdGxvYWRlcl9ydW4obGlieGxfX2VnYyos IGxpYnhsX19ib290bG9hZGVyX3N0YXRlICpzdCk7CiAKKy8qLS0tLS0gR2VuZXJpYyBEZXZpY2Ug SGFuZGxpbmcgLS0tLS0qLworc3RydWN0IGxpYnhsX2RldmljZV90eXBlIHsKKyAgICBjaGFyICp0 eXBlOworICAgIGludCBudW1fb2Zmc2V0OyAgIC8qIE9mZnNldCBvZiAjIG9mIGRldmljZXMgaW4g bGlieGxfZG9tYWluX2NvbmZpZyAqLworICAgIHZvaWQgKCphZGQpKGxpYnhsX19lZ2MgKiwgbGli eGxfX2FvICosIHVpbnQzMl90LCBsaWJ4bF9kb21haW5fY29uZmlnICosCisgICAgICAgICAgICAg ICAgbGlieGxfX211bHRpZGV2ICopOworfTsKKworZXh0ZXJuIHN0cnVjdCBsaWJ4bF9kZXZpY2Vf dHlwZSBsaWJ4bF9fbmljX2RldnR5cGU7CitleHRlcm4gc3RydWN0IGxpYnhsX2RldmljZV90eXBl IGxpYnhsX192dHBtX2RldnR5cGU7CitleHRlcm4gc3RydWN0IGxpYnhsX2RldmljZV90eXBlIGxp YnhsX191c2JjdHJsX2RldnR5cGU7CitleHRlcm4gc3RydWN0IGxpYnhsX2RldmljZV90eXBlIGxp YnhsX191c2JkZXZfZGV2dHlwZTsKIC8qLS0tLS0gRG9tYWluIGRlc3RydWN0aW9uIC0tLS0tKi8K IAogLyogRG9tYWluIGRlc3RydWN0aW9uIGhhcyBiZWVuIHNwbGl0IGludG8gdHdvIGZ1bmN0aW9u czoKQEAgLTM1NjUsNiArMzU3Nyw3IEBAIHN0cnVjdCBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9zdGF0 ZSB7CiAgICAgbGlieGxfYXN5bmNwcm9ncmVzc19ob3cgYW9wX2NvbnNvbGVfaG93OwogICAgIC8q IHByaXZhdGUgdG8gZG9tYWluX2NyZWF0ZSAqLwogICAgIGludCBndWVzdF9kb21pZDsKKyAgICBp bnQgZGV2aWNlX3R5cGVfaWR4OwogICAgIGNvbnN0IGNoYXIgKmNvbG9fcHJveHlfc2NyaXB0Owog ICAgIGxpYnhsX19kb21haW5fYnVpbGRfc3RhdGUgYnVpbGRfc3RhdGU7CiAgICAgbGlieGxfX2Nv bG9fcmVzdG9yZV9zdGF0ZSBjcnM7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9wdnVz Yi5jIGIvdG9vbHMvbGlieGwvbGlieGxfcHZ1c2IuYwppbmRleCA4ODVmMGQ0Li4zMWMzOGI5IDEw MDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9wdnVzYi5jCisrKyBiL3Rvb2xzL2xpYnhsL2xp YnhsX3B2dXNiLmMKQEAgLTE2NjcsNiArMTY2NywxOSBAQCBvdXQ6CiAgICAgR0NfRlJFRTsKICAg ICByZXR1cm4gcmM7CiB9CisKK3N0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSBsaWJ4bF9fdXNiY3Ry bF9kZXZ0eXBlID0geworICAgIC50eXBlICAgICAgID0gInVzYmN0cmwiLAorICAgIC5udW1fb2Zm c2V0ID0gb2Zmc2V0b2YobGlieGxfZG9tYWluX2NvbmZpZywgbnVtX3VzYmN0cmxzKSwKKyAgICAu YWRkICAgICAgICA9IGxpYnhsX19hZGRfdXNiY3RybHMsCit9OworCitzdHJ1Y3QgbGlieGxfZGV2 aWNlX3R5cGUgbGlieGxfX3VzYmRldl9kZXZ0eXBlID0geworICAgIC50eXBlICAgICAgID0gInVz YmRldiIsCisgICAgLm51bV9vZmZzZXQgPSBvZmZzZXRvZihsaWJ4bF9kb21haW5fY29uZmlnLCBu dW1fdXNiZGV2cyksCisgICAgLmFkZCAgICAgICAgPSBsaWJ4bF9fYWRkX3VzYmRldnMsCit9Owor CiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9kZTogQwotLSAKMi42LjYKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1k ZXZlbAo=