From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH v4 32/32] libxl_disk: Have libxl_cdrom_insert use libxl__ev_qmp Date: Fri, 27 Jul 2018 15:06:14 +0100 Message-ID: <20180727140614.13256-33-anthony.perard@citrix.com> References: <20180727140614.13256-1-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fj3jS-0008Ip-3e for xen-devel@lists.xenproject.org; Fri, 27 Jul 2018 14:28:38 +0000 In-Reply-To: <20180727140614.13256-1-anthony.perard@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Anthony PERARD , Ian Jackson , Wei Liu List-Id: xen-devel@lists.xenproject.org U28gd2hlbiBRRU1VIGlzIGludm9sdmUsIHRoZSBvcGVyYXRpb24gd2lsbCBiZSBhc3luY2hyb25l IGFuZCB3aWxsCmZpbmlzaCBsYXRlci4KClRoaXMgcGF0aCByZWltcGxlbWVudCBsaWJ4bF9fcW1w X2luc2VydF9jZHJvbSB0byBtYWtlIHVzZSBvZiB0aGUgbmV3CmxpYnhsX19ldl9xbXAgQVBJLiAg SXQgYWxzbyBvcGVuIHRoZSBjZHJvbSBpbiBsaWJ4bCBhbmQgc2VuZCB0aGUgRkQgdmlhClFNUCwg c28gUUVNVSBkb2Vzbid0IG5lZWQgYWNjZXNzIHBlcm1pdGlvbiBvbiB0aGUgY2Ryb20gZmlsZS4K CmxpYnhsX19xbXBfaW5zZXJ0X2Nkcm9tKCkgaXMgbm93IGFzeW5jLCBsaWJ4bF9jZHJvbV9pbnNl cnQoKSBpcyB1cGRhdGVkCnRvIG1ha2UgdXNlIG9mIGl0LgoKU2lnbmVkLW9mZi1ieTogQW50aG9u eSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQGNpdHJpeC5jb20+Ci0tLQoKTm90ZXM6CiAgICB2NDoK ICAgICAgICBzd2l0Y2ggdG8gdGhlIHVwZGF0ZWQgbGlieGxfX2V2X3FtcCBBUEkKCiB0b29scy9s aWJ4bC9saWJ4bF9kaXNrLmMgICAgIHwgIDQyICsrKysrKysrKy0tLS0KIHRvb2xzL2xpYnhsL2xp YnhsX2ludGVybmFsLmggfCAgMTQgKysrKy0KIHRvb2xzL2xpYnhsL2xpYnhsX3FtcC5jICAgICAg fCAxMTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIDMgZmlsZXMgY2hhbmdl ZCwgMTQyIGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xz L2xpYnhsL2xpYnhsX2Rpc2suYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2Rpc2suYwppbmRleCBjNzU5 MTc5NjI4Li5lYjA4NmVkOTA5IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9kaXNrLmMK KysrIGIvdG9vbHMvbGlieGwvbGlieGxfZGlzay5jCkBAIC02NzIsMTEgKzY3MiwxNCBAQCB0eXBl ZGVmIHN0cnVjdCB7CiAgICAgaW50IGRtX3ZlcjsKICAgICBpbnQgZG9taWQ7CiAgICAgbGlieGxf X2RvbWFpbl91c2VyZGF0YV9sb2NrICpsb2NrOworICAgIGxpYnhsX19xbXBfaW5zZXJ0X2Nkcm9t X3N0YXRlIHFpY3M7CiB9IGxpYnhsX19jZHJvbV9pbnNlcnRfc3RhdGU7CiBzdGF0aWMgdm9pZCBj ZHJvbV9pbnNlcnRfZWplY3RlZChsaWJ4bF9fZWdjICplZ2MsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWJ4bF9fY2Ryb21faW5zZXJ0X3N0YXRlICpjaXMpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3FtcF9pbnNlcnRfY2Ryb21fc3RhdGUgICpx aWNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjKTsKIHN0YXRpYyB2 b2lkIGNkcm9tX2luc2VydF9pbnNlcnRlZChsaWJ4bF9fZWdjICplZ2MsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2Nkcm9tX2luc2VydF9zdGF0ZSAqY2lzKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fcW1wX2luc2VydF9jZHJvbV9z dGF0ZSAqcWljcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmMpOwog c3RhdGljIHZvaWQgY2Ryb21faW5zZXJ0X2RvbmUobGlieGxfX2VnYyAqZWdjLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2Nkcm9tX2luc2VydF9zdGF0ZSAqY2lzLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjKTsKQEAgLTc3NywxMiArNzgwLDE2IEBA IGludCBsaWJ4bF9jZHJvbV9pbnNlcnQobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBs aWJ4bF9kZXZpY2VfZGlzayAqZGlzaywKICAgICAgKiBieSBpbnNlcnRpbmcgZW1wdHkgbWVkaWEu IEpTT04gaXMgbm90IHVwZGF0ZWQuCiAgICAgICovCiAgICAgaWYgKGNpcy0+ZG1fdmVyID09IExJ QlhMX0RFVklDRV9NT0RFTF9WRVJTSU9OX1FFTVVfWEVOKSB7Ci0gICAgICAgIHJjID0gbGlieGxf X3FtcF9pbnNlcnRfY2Ryb20oZ2MsIGRvbWlkLCBkaXNrX2VtcHR5KTsKKyAgICAgICAgbGlieGxf X3FtcF9pbnNlcnRfY2Ryb21fc3RhdGUgKnFpY3MgPSAmY2lzLT5xaWNzOworICAgICAgICBxaWNz LT5kb21pZCA9IGRvbWlkOworICAgICAgICBxaWNzLT5kaXNrID0gZGlza19lbXB0eTsKKyAgICAg ICAgcWljcy0+Y2FsbGJhY2sgPSBjZHJvbV9pbnNlcnRfZWplY3RlZDsKKyAgICAgICAgcmMgPSBs aWJ4bF9fcW1wX2luc2VydF9jZHJvbShnYywgcWljcyk7CiAgICAgICAgIGlmIChyYykgZ290byBv dXQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY2Ryb21faW5zZXJ0X2VqZWN0ZWQoZWdjLCAmY2lz LT5xaWNzLCAwKTsKICAgICB9CiAKLSAgICBjZHJvbV9pbnNlcnRfZWplY3RlZChlZ2MsIGNpcyk7 Ci0KICAgICByZXR1cm4gQU9fSU5QUk9HUkVTUzsKIAogb3V0OgpAQCAtNzk0LDExICs4MDEsMTIg QEAgb3V0OgogfQogCiBzdGF0aWMgdm9pZCBjZHJvbV9pbnNlcnRfZWplY3RlZChsaWJ4bF9fZWdj ICplZ2MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fY2Ryb21faW5z ZXJ0X3N0YXRlICpjaXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9f cW1wX2luc2VydF9jZHJvbV9zdGF0ZSAqcWljcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludCByYykKIHsKKyAgICBsaWJ4bF9fY2Ryb21faW5zZXJ0X3N0YXRlICpjaXMgPSBD T05UQUlORVJfT0YocWljcywgKmNpcywgcWljcyk7CiAgICAgU1RBVEVfQU9fR0MoY2lzLT5hbyk7 CiAgICAgdWludDMyX3QgZG9taWQgPSBjaXMtPmRvbWlkOwotICAgIGludCByYzsKICAgICBjb25z dCBjaGFyICpiZV9wYXRoLCAqbGlieGxfcGF0aDsKICAgICBjaGFyICogdG1wOwogICAgIHhzX3Ry YW5zYWN0aW9uX3QgdCA9IFhCVF9OVUxMOwpAQCAtODA4LDYgKzgxNiw5IEBAIHN0YXRpYyB2b2lk IGNkcm9tX2luc2VydF9lamVjdGVkKGxpYnhsX19lZ2MgKmVnYywKICAgICBsaWJ4bF9kZXZpY2Vf ZGlzayAqZGlzayA9IGNpcy0+ZGlzazsKICAgICBsaWJ4bF9kZXZpY2VfZGlzayAqZGlza19zYXZl ZCA9ICZjaXMtPmRpc2tfc2F2ZWQ7CiAKKyAgICBpZiAocmMpCisgICAgICAgIGdvdG8gb3V0Owor CiAgICAgYmVfcGF0aCA9IGNpcy0+YmVfcGF0aDsKICAgICBsaWJ4bF9wYXRoID0gY2lzLT5saWJ4 bF9wYXRoOwogCkBAIC04NTEsMTIgKzg2MiwxNSBAQCBzdGF0aWMgdm9pZCBjZHJvbV9pbnNlcnRf ZWplY3RlZChsaWJ4bF9fZWdjICplZ2MsCiAgICAgaWYgKHJjKSBnb3RvIG91dDsKIAogICAgIGlm IChjaXMtPmRtX3ZlciA9PSBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9RRU1VX1hFTikgewot ICAgICAgICByYyA9IGxpYnhsX19xbXBfaW5zZXJ0X2Nkcm9tKGdjLCBkb21pZCwgZGlzayk7Cisg ICAgICAgIHFpY3MtPmRvbWlkID0gZG9taWQ7CisgICAgICAgIHFpY3MtPmRpc2sgPSBkaXNrOwor ICAgICAgICBxaWNzLT5jYWxsYmFjayA9IGNkcm9tX2luc2VydF9pbnNlcnRlZDsKKyAgICAgICAg cmMgPSBsaWJ4bF9fcW1wX2luc2VydF9jZHJvbShnYywgcWljcyk7CiAgICAgICAgIGlmIChyYykg Z290byBvdXQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY2Ryb21faW5zZXJ0X2luc2VydGVkKGVn YywgcWljcywgMCk7CiAgICAgfQogCi0gICAgY2Ryb21faW5zZXJ0X2luc2VydGVkKGVnYywgY2lz KTsKLQogICAgIHJldHVybjsKIAogb3V0OgpAQCAtODY1LDExICs4NzksMTIgQEAgb3V0OgogfQog CiBzdGF0aWMgdm9pZCBjZHJvbV9pbnNlcnRfaW5zZXJ0ZWQobGlieGxfX2VnYyAqZWdjLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19jZHJvbV9pbnNlcnRfc3RhdGUg KmNpcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fcW1wX2luc2Vy dF9jZHJvbV9zdGF0ZSAqcWljcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgcmMpCiB7CisgICAgbGlieGxfX2Nkcm9tX2luc2VydF9zdGF0ZSAqY2lzID0gQ09OVEFJTkVS X09GKHFpY3MsICpjaXMsIHFpY3MpOwogICAgIFNUQVRFX0FPX0dDKGNpcy0+YW8pOwogICAgIHVp bnQzMl90IGRvbWlkID0gY2lzLT5kb21pZDsKLSAgICBpbnQgcmM7CiAgICAgY29uc3QgY2hhciAq YmVfcGF0aCwgKmxpYnhsX3BhdGg7CiAgICAgY2hhciAqIHRtcDsKICAgICB4c190cmFuc2FjdGlv bl90IHQgPSBYQlRfTlVMTDsKQEAgLTg4MCw2ICs4OTUsOSBAQCBzdGF0aWMgdm9pZCBjZHJvbV9p bnNlcnRfaW5zZXJ0ZWQobGlieGxfX2VnYyAqZWdjLAogICAgIGJlX3BhdGggPSBjaXMtPmJlX3Bh dGg7CiAgICAgbGlieGxfcGF0aCA9IGNpcy0+bGlieGxfcGF0aDsKIAorICAgIGlmIChyYykKKyAg ICAgICAgZ290byBvdXQ7CisKICAgICBpbnNlcnQgPSBmbGV4YXJyYXlfbWFrZShnYywgNCwgMSk7 CiAgICAgZmxleGFycmF5X2FwcGVuZF9wYWlyKGluc2VydCwgInR5cGUiLAogICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWJ4bF9fZGV2aWNlX2Rpc2tfc3RyaW5nX29mX2JhY2tlbmQoZGlzay0+ YmFja2VuZCkpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rv b2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5kZXggY2FmZThiNTczMy4uNmI2YWM2NWQwMCAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4 bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC0xOTQ4LDcgKzE5NDgsMTkgQEAgX2hpZGRlbiBpbnQgbGli eGxfX3FtcF9yZXN1bWUobGlieGxfX2djICpnYywgaW50IGRvbWlkKTsKIF9oaWRkZW4gaW50IGxp YnhsX19xbXBfcmVzdG9yZShsaWJ4bF9fZ2MgKmdjLCBpbnQgZG9taWQsIGNvbnN0IGNoYXIgKmZp bGVuYW1lKTsKIC8qIFNldCBkaXJ0eSBiaXRtYXAgbG9nZ2luZyBzdGF0dXMgKi8KIF9oaWRkZW4g aW50IGxpYnhsX19xbXBfc2V0X2dsb2JhbF9kaXJ0eV9sb2cobGlieGxfX2djICpnYywgaW50IGRv bWlkLCBib29sIGVuYWJsZSk7Ci1faGlkZGVuIGludCBsaWJ4bF9fcW1wX2luc2VydF9jZHJvbShs aWJ4bF9fZ2MgKmdjLCBpbnQgZG9taWQsIGNvbnN0IGxpYnhsX2RldmljZV9kaXNrICpkaXNrKTsK KwordHlwZWRlZiBzdHJ1Y3QgbGlieGxfX3FtcF9pbnNlcnRfY2Ryb21fc3RhdGUgbGlieGxfX3Ft cF9pbnNlcnRfY2Ryb21fc3RhdGU7CitzdHJ1Y3QgbGlieGxfX3FtcF9pbnNlcnRfY2Ryb21fc3Rh dGUgeworICAgIC8qIGNhbGxlciBzaG91bGQgaW5jbHVkZSB0aGlzIGluIHRoZWlyIG93biBzdHJ1 Y3QgKi8KKyAgICAvKiBjYWxsZXIgbXVzdCBmaWxsIHRoZXNlIGluLCBhbmQgdGhleSBtdXN0IGFs bCByZW1haW4gdmFsaWQgKi8KKyAgICBpbnQgZG9taWQ7CisgICAgY29uc3QgbGlieGxfZGV2aWNl X2Rpc2sgKmRpc2s7CisgICAgdm9pZCAoKmNhbGxiYWNrKShsaWJ4bF9fZWdjICplZ2MsIGxpYnhs X19xbXBfaW5zZXJ0X2Nkcm9tX3N0YXRlICosIGludCByYyk7CisgICAgLyogcHJpdmF0ZSB0byBs aWJ4bF9fcW1wX2luc2VydF9jZHJvbSgpICovCisgICAgbGlieGxfX2V2X3FtcCBldjsKK307Citp bnQgbGlieGxfX3FtcF9pbnNlcnRfY2Ryb20obGlieGxfX2djICpnYywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWJ4bF9fcW1wX2luc2VydF9jZHJvbV9zdGF0ZSAqcWljcyk7CiAvKiBB ZGQgYSB2aXJ0dWFsIENQVSAqLwogX2hpZGRlbiBpbnQgbGlieGxfX3FtcF9jcHVfYWRkKGxpYnhs X19nYyAqZ2MsIGludCBkb21pZCwgaW50IGluZGV4KTsKIC8qIFF1ZXJ5IHRoZSBiaXRtYXAgb2Yg Q1BVcyAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfcW1wLmMgYi90b29scy9saWJ4 bC9saWJ4bF9xbXAuYwppbmRleCAwNzIwM2E2ZmU2Li4wOGM4MDYwMDk1IDEwMDY0NAotLS0gYS90 b29scy9saWJ4bC9saWJ4bF9xbXAuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9xbXAuYwpAQCAt MTA2MSwyNCArMTA2MSw2IEBAIGludCBsaWJ4bF9fcW1wX3NldF9nbG9iYWxfZGlydHlfbG9nKGxp YnhsX19nYyAqZ2MsIGludCBkb21pZCwgYm9vbCBlbmFibGUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOVUxMLCBOVUxMKTsKIH0KIAotaW50IGxpYnhsX19xbXBfaW5zZXJ0X2Nkcm9tKGxp YnhsX19nYyAqZ2MsIGludCBkb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBsaWJ4bF9kZXZpY2VfZGlzayAqZGlzaykKLXsKLSAgICBsaWJ4bF9fanNvbl9vYmplY3QgKmFy Z3MgPSBOVUxMOwotICAgIGludCBkZXZfbnVtYmVyID0gbGlieGxfX2RldmljZV9kaXNrX2Rldl9u dW1iZXIoZGlzay0+dmRldiwgTlVMTCwgTlVMTCk7Ci0KLSAgICBRTVBfUEFSQU1FVEVSU19TUFJJ TlRGKCZhcmdzLCAiZGV2aWNlIiwgImlkZS0laSIsIGRldl9udW1iZXIpOwotCi0gICAgaWYgKGRp c2stPmZvcm1hdCA9PSBMSUJYTF9ESVNLX0ZPUk1BVF9FTVBUWSkgewotICAgICAgICByZXR1cm4g cW1wX3J1bl9jb21tYW5kKGdjLCBkb21pZCwgImVqZWN0IiwgYXJncywgTlVMTCwgTlVMTCk7Ci0g ICAgfSBlbHNlIHsKLSAgICAgICAgcW1wX3BhcmFtZXRlcnNfYWRkX3N0cmluZyhnYywgJmFyZ3Ms ICJ0YXJnZXQiLCBkaXNrLT5wZGV2X3BhdGgpOwotICAgICAgICBxbXBfcGFyYW1ldGVyc19hZGRf c3RyaW5nKGdjLCAmYXJncywgImFyZyIsCi0gICAgICAgICAgICBsaWJ4bF9fcWVtdV9kaXNrX2Zv cm1hdF9zdHJpbmcoZGlzay0+Zm9ybWF0KSk7Ci0gICAgICAgIHJldHVybiBxbXBfcnVuX2NvbW1h bmQoZ2MsIGRvbWlkLCAiY2hhbmdlIiwgYXJncywgTlVMTCwgTlVMTCk7Ci0gICAgfQotfQotCiBp bnQgbGlieGxfX3FtcF9jcHVfYWRkKGxpYnhsX19nYyAqZ2MsIGludCBkb21pZCwgaW50IGlkeCkK IHsKICAgICBsaWJ4bF9fanNvbl9vYmplY3QgKmFyZ3MgPSBOVUxMOwpAQCAtMTM5NSw2ICsxMzc3 LDEwNSBAQCBzdGF0aWMgdm9pZCBkbV9zdGF0ZV9zYXZlZChsaWJ4bF9fZWdjICplZ2MsIGxpYnhs X19ldl9xbXAgKmV2LAogfQogCiAKK3N0YXRpYyB2b2lkIHFtcF9pbnNlcnRfY2Ryb21fYWRkZmRf Y2IobGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fZXZfcW1wICpldiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfX2pzb25fb2JqZWN0ICpyZXNwb25zZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjKTsKK3N0YXRpYyB2 b2lkIHFtcF9pbnNlcnRfY2Ryb21fZG9uZV9jYihsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19ldl9x bXAgKmV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhs X19qc29uX29iamVjdCAqcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IHJjKTsKK2ludCBsaWJ4bF9fcW1wX2luc2VydF9jZHJvbShsaWJ4bF9fZ2MgKmdj LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19xbXBfaW5zZXJ0X2Nkcm9tX3N0 YXRlICpxaWNzKQoreworICAgIGludCByYzsKKyAgICBsaWJ4bF9fanNvbl9vYmplY3QgKmFyZ3Mg PSBOVUxMOworICAgIGludCBkb21pZCA9IHFpY3MtPmRvbWlkOworICAgIGxpYnhsX19ldl9xbXAg KmV2ID0gICZxaWNzLT5ldjsKKyAgICBjb25zdCBsaWJ4bF9kZXZpY2VfZGlzayAqZGlzayA9IHFp Y3MtPmRpc2s7CisgICAgaW50IGRldl9udW1iZXIgPSBsaWJ4bF9fZGV2aWNlX2Rpc2tfZGV2X251 bWJlcihkaXNrLT52ZGV2LCBOVUxMLCBOVUxMKTsKKworICAgIGxpYnhsX19ldl9xbXBfaW5pdChl dik7CisgICAgZXYtPmRvbWlkID0gcWljcy0+ZG9taWQ7CisgICAgZXYtPmNmZCA9IE5VTEw7CisK KyAgICBpZiAoZGlzay0+Zm9ybWF0ID09IExJQlhMX0RJU0tfRk9STUFUX0VNUFRZKSB7CisgICAg ICAgIFFNUF9QQVJBTUVURVJTX1NQUklOVEYoJmFyZ3MsICJkZXZpY2UiLCAiaWRlLSVpIiwgZGV2 X251bWJlcik7CisgICAgICAgIGV2LT5jYWxsYmFjayA9IHFtcF9pbnNlcnRfY2Ryb21fZG9uZV9j YjsKKyAgICAgICAgcmMgPSBsaWJ4bF9fZXZfcW1wX3NlbmQoZ2MsIGV2LCAiZWplY3QiLCBhcmdz KTsKKyAgICB9IGVsc2UgeworICAgICAgICBsaWJ4bF9fY2FyZWZkX2JlZ2luKCk7CisgICAgICAg IGV2LT5jZmQgPSBsaWJ4bF9fY2FyZWZkX29wZW5lZChDVFgsIG9wZW4oZGlzay0+cGRldl9wYXRo LCBPX1JET05MWSkpOworICAgICAgICBpZiAoIWV2LT5jZmQpIHsKKyAgICAgICAgICAgIExPR0VE KEVSUk9SLCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gb3BlbiBjZHJvbSBm aWxlICVzIiwgZGlzay0+cGRldl9wYXRoKTsKKyAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsK KyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisKKyAgICAgICAgLyogVGhpcyBmcmVl IGZvcm0gcGFyYW1ldGVyIGlzIG5vdCB1c2UgYnkgUUVNVSBvciBsaWJ4bC4gKi8KKyAgICAgICAg UU1QX1BBUkFNRVRFUlNfU1BSSU5URigmYXJncywgIm9wYXF1ZSIsICIlczolcyIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGlza19mb3JtYXRfdG9fc3RyaW5nKGRpc2st PmZvcm1hdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzay0+cGRldl9wYXRo KTsKKyAgICAgICAgZXYtPmNhbGxiYWNrID0gcW1wX2luc2VydF9jZHJvbV9hZGRmZF9jYjsKKyAg ICAgICAgcmMgPSBsaWJ4bF9fZXZfcW1wX3NlbmQoZ2MsIGV2LCAiYWRkLWZkIiwgYXJncyk7Cisg ICAgICAgIGlmIChyYykKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgIH0KK291dDoKKyAgICBp ZiAocmMpCisgICAgICAgIGxpYnhsX19jYXJlZmRfY2xvc2UoZXYtPmNmZCk7CisgICAgcmV0dXJu IHJjOworfQorCitzdGF0aWMgdm9pZCBxbXBfaW5zZXJ0X2Nkcm9tX2FkZGZkX2NiKGxpYnhsX19l Z2MgKmVnYywgbGlieGxfX2V2X3FtcCAqZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGxpYnhsX19qc29uX29iamVjdCAqcmVzcG9uc2UsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByYykKK3sKKyAgICBFR0NfR0M7CisgICAg bGlieGxfX3FtcF9pbnNlcnRfY2Ryb21fc3RhdGUgKnFpY3MgPSBDT05UQUlORVJfT0YoZXYsICpx aWNzLCBldik7CisgICAgbGlieGxfX2pzb25fb2JqZWN0ICphcmdzID0gTlVMTDsKKyAgICBjb25z dCBsaWJ4bF9fanNvbl9vYmplY3QgKm87CisgICAgY29uc3QgbGlieGxfZGV2aWNlX2Rpc2sgKmRp c2sgPSBxaWNzLT5kaXNrOworICAgIGludCBkZXZfbnVtYmVyID0gbGlieGxfX2RldmljZV9kaXNr X2Rldl9udW1iZXIoZGlzay0+dmRldiwgTlVMTCwgTlVMTCk7CisgICAgaW50IGZkc2V0OworCisg ICAgbGlieGxfX2NhcmVmZF9jbG9zZShldi0+Y2ZkKTsKKyAgICBldi0+Y2ZkID0gTlVMTDsKKwor ICAgIGlmIChyYykKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICBvID0gbGlieGxfX2pzb25fbWFw X2dldCgiZmRzZXQtaWQiLCByZXNwb25zZSwgSlNPTl9JTlRFR0VSKTsKKyAgICBpZiAoIW8pIHsK KyAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisgICAg ZmRzZXQgPSBsaWJ4bF9fanNvbl9vYmplY3RfZ2V0X2ludGVnZXIobyk7CisKKyAgICBldi0+Y2Fs bGJhY2sgPSBxbXBfaW5zZXJ0X2Nkcm9tX2RvbmVfY2I7CisgICAgUU1QX1BBUkFNRVRFUlNfU1BS SU5URigmYXJncywgImRldmljZSIsICJpZGUtJWkiLCBkZXZfbnVtYmVyKTsKKyAgICBRTVBfUEFS QU1FVEVSU19TUFJJTlRGKCZhcmdzLCAidGFyZ2V0IiwgIi9kZXYvZmRzZXQvJWQiLCBmZHNldCk7 CisgICAgcW1wX3BhcmFtZXRlcnNfYWRkX3N0cmluZyhnYywgJmFyZ3MsICJhcmciLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3FlbXVfZGlza19mb3JtYXRfc3RyaW5nKGRp c2stPmZvcm1hdCkpOworICAgIHJjID0gbGlieGxfX2V2X3FtcF9zZW5kKGdjLCBldiwgImNoYW5n ZSIsIGFyZ3MpOworICAgIGlmIChyYykKKyAgICAgICAgZ290byBvdXQ7CisgICAgcmV0dXJuOwor b3V0OgorICAgIHFtcF9pbnNlcnRfY2Ryb21fZG9uZV9jYihlZ2MsIGV2LCBOVUxMLCByYyk7Cit9 CisKK3N0YXRpYyB2b2lkIHFtcF9pbnNlcnRfY2Ryb21fZG9uZV9jYihsaWJ4bF9fZWdjICplZ2Ms IGxpYnhsX19ldl9xbXAgKmV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGxpYnhsX19qc29uX29iamVjdCAqcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IHJjKQoreworICAgIEVHQ19HQzsKKyAgICBsaWJ4bF9fcW1w X2luc2VydF9jZHJvbV9zdGF0ZSAqcWljcyA9IENPTlRBSU5FUl9PRihldiwgKnFpY3MsIGV2KTsK KworICAgIGxpYnhsX19ldl9xbXBfZGlzcG9zZShnYywgZXYpOworCisgICAgcWljcy0+Y2FsbGJh Y2soZWdjLCBxaWNzLCByYyk7Cit9CisKIAogLyogLS0tLS0tLS0tLS0tIEltcGxlbWVudGF0aW9u IG9mIGxpYnhsX19ldl9xbXAgLS0tLS0tLS0tLS0tLS0tLSAqLwogCi0tIApBbnRob255IFBFUkFS RAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v bGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=