From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH 20/29] xl: split out cd related code Date: Fri, 24 Feb 2017 16:13:05 +0000 Message-ID: <20170224161314.22154-21-wei.liu2@citrix.com> References: <20170224161314.22154-1-wei.liu2@citrix.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 1chIY0-0006pL-TV for xen-devel@lists.xenproject.org; Fri, 24 Feb 2017 16:16:44 +0000 In-Reply-To: <20170224161314.22154-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Wei Liu , Ian Jackson List-Id: xen-devel@lists.xenproject.org U2lnbmVkLW9mZi1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCiB0b29scy94 bC9NYWtlZmlsZSAgICAgfCAgIDIgKy0KIHRvb2xzL3hsL3hsX2NkLmMgICAgICB8IDExNCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogdG9vbHMveGwv eGxfY21kaW1wbC5jIHwgIDgwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAz IGZpbGVzIGNoYW5nZWQsIDExNSBpbnNlcnRpb25zKCspLCA4MSBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCB0b29scy94bC94bF9jZC5jCgpkaWZmIC0tZ2l0IGEvdG9vbHMveGwvTWFr ZWZpbGUgYi90b29scy94bC9NYWtlZmlsZQppbmRleCBlNmU4Y2VmNzEwLi44OWNmOTA2OWUwIDEw MDY0NAotLS0gYS90b29scy94bC9NYWtlZmlsZQorKysgYi90b29scy94bC9NYWtlZmlsZQpAQCAt MTgsNyArMTgsNyBAQCBDRkxBR1NfWEwgKz0gLVdzaGFkb3cKIFhMX09CSlMgPSB4bC5vIHhsX2Nt ZGltcGwubyB4bF9jbWR0YWJsZS5vIHhsX3N4cC5vIHhsX3V0aWxzLm8KIFhMX09CSlMgKz0geGxf dG1lbS5vIHhsX3BhcnNlLm8geGxfY3B1cG9vbC5vIHhsX2ZsYXNrLm8KIFhMX09CSlMgKz0geGxf dnRwbS5vIHhsX2Jsb2NrLm8geGxfbmljLm8geGxfdXNiLm8KLVhMX09CSlMgKz0geGxfc2NoZWQu byB4bF9wY2kubyB4bF92Y3B1Lm8KK1hMX09CSlMgKz0geGxfc2NoZWQubyB4bF9wY2kubyB4bF92 Y3B1Lm8geGxfY2QubwogCiAkKFhMX09CSlMpOiBDRkxBR1MgKz0gJChDRkxBR1NfbGlieGVudG9v bGxvZykKICQoWExfT0JKUyk6IENGTEFHUyArPSAkKENGTEFHU19YTCkKZGlmZiAtLWdpdCBhL3Rv b2xzL3hsL3hsX2NkLmMgYi90b29scy94bC94bF9jZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLmQ5OWY0NjFjNmQKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy94bC94 bF9jZC5jCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IDIwMDktMjAxNyBDaXRy aXggTHRkIGFuZCBvdGhlciBjb250cmlidXRvcnMKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkCisgKiBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9u IDIuMSBvbmx5LiB3aXRoIHRoZSBzcGVjaWFsCisgKiBleGNlcHRpb24gb24gbGlua2luZyBkZXNj cmliZWQgaW4gZmlsZSBMSUNFTlNFLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor ICovCisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNs dWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSA8bGlieGwu aD4KKyNpbmNsdWRlIDxsaWJ4bF91dGlscy5oPgorI2luY2x1ZGUgPGxpYnhsdXRpbC5oPgorCisj aW5jbHVkZSAieGwuaCIKKyNpbmNsdWRlICJ4bF91dGlscy5oIgorI2luY2x1ZGUgInhsX3BhcnNl LmgiCisKK3N0YXRpYyBpbnQgY2RfaW5zZXJ0KHVpbnQzMl90IGRvbWlkLCBjb25zdCBjaGFyICp2 aXJ0ZGV2LCBjaGFyICpwaHlzKQoreworICAgIGxpYnhsX2RldmljZV9kaXNrIGRpc2s7CisgICAg Y2hhciAqYnVmID0gTlVMTDsKKyAgICBYTFVfQ29uZmlnICpjb25maWcgPSAwOworICAgIHN0cnVj dCBzdGF0IGI7CisgICAgaW50IHI7CisKKyAgICB4YXNwcmludGYoJmJ1ZiwgInZkZXY9JXMsYWNj ZXNzPXIsZGV2dHlwZT1jZHJvbSx0YXJnZXQ9JXMiLAorICAgICAgICAgICAgICB2aXJ0ZGV2LCBw aHlzID8gcGh5cyA6ICIiKTsKKworICAgIHBhcnNlX2Rpc2tfY29uZmlnKCZjb25maWcsIGJ1Ziwg JmRpc2spOworCisgICAgLyogQVRNIHRoZSBleGlzdGVuY2Ugb2YgdGhlIGJhY2tpbmcgZmlsZSBp cyBub3QgY2hlY2tlZCBmb3IgcWRpc2sKKyAgICAgKiBpbiBsaWJ4bF9jZHJvbV9pbnNlcnQoKSBi ZWNhdXNlIFJBVyBpcyB1c2VkIGZvciByZW1vdGUKKyAgICAgKiBwcm90b2NvbHMgYXMgd2VsbCBh cyBwbGFpbiBmaWxlcy4gIFRoaXMgd2lsbCBpZGVhbGx5IGJlIGNoYW5nZWQKKyAgICAgKiBmb3Ig NC40LCBidXQgdGhpcyB3b3JrLWFyb3VuZCBmaXhlcyB0aGUgcHJvYmxlbSBvZiAiY2QtaW5zZXJ0 IgorICAgICAqIHJldHVybmluZyBzdWNjZXNzIGZvciBub24tZXhpc3RlbnQgZmlsZXMuICovCisg ICAgaWYgKGRpc2suZm9ybWF0ICE9IExJQlhMX0RJU0tfRk9STUFUX0VNUFRZCisgICAgICAgICYm IHN0YXQoZGlzay5wZGV2X3BhdGgsICZiKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkNh bm5vdCBzdGF0IGZpbGU6ICVzXG4iLAorICAgICAgICAgICAgICAgIGRpc2sucGRldl9wYXRoKTsK KyAgICAgICAgciA9IDE7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIGlmIChsaWJ4 bF9jZHJvbV9pbnNlcnQoY3R4LCBkb21pZCwgJmRpc2ssIE5VTEwpKSB7CisgICAgICAgIHIgPSAx OworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICByID0gMDsKKworb3V0OgorICAgIGxp YnhsX2RldmljZV9kaXNrX2Rpc3Bvc2UoJmRpc2spOworICAgIGZyZWUoYnVmKTsKKworICAgIHJl dHVybiByOworfQorCitpbnQgbWFpbl9jZF9lamVjdChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7 CisgICAgdWludDMyX3QgZG9taWQ7CisgICAgaW50IG9wdCA9IDA7CisgICAgY29uc3QgY2hhciAq dmlydGRldjsKKworICAgIFNXSVRDSF9GT1JFQUNIX09QVChvcHQsICIiLCBOVUxMLCAiY2QtZWpl Y3QiLCAyKSB7CisgICAgICAgIC8qIE5vIG9wdGlvbnMgKi8KKyAgICB9CisKKyAgICBkb21pZCA9 IHhmaW5kX2RvbWFpbihhcmd2W29wdGluZF0pOworICAgIHZpcnRkZXYgPSBhcmd2W29wdGluZCAr IDFdOworCisgICAgaWYgKGNkX2luc2VydChkb21pZCwgdmlydGRldiwgTlVMTCkpCisgICAgICAg IHJldHVybiBFWElUX0ZBSUxVUkU7CisKKyAgICByZXR1cm4gRVhJVF9TVUNDRVNTOworfQorCitp bnQgbWFpbl9jZF9pbnNlcnQoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICAgIHVpbnQzMl90 IGRvbWlkOworICAgIGludCBvcHQgPSAwOworICAgIGNvbnN0IGNoYXIgKnZpcnRkZXY7CisgICAg Y2hhciAqZmlsZSA9IE5VTEw7IC8qIG1vZGlmaWVkIGJ5IGNkX2luc2VydCB0b2tlbmlzaW5nIGl0 ICovCisKKyAgICBTV0lUQ0hfRk9SRUFDSF9PUFQob3B0LCAiIiwgTlVMTCwgImNkLWluc2VydCIs IDMpIHsKKyAgICAgICAgLyogTm8gb3B0aW9ucyAqLworICAgIH0KKworICAgIGRvbWlkID0geGZp bmRfZG9tYWluKGFyZ3Zbb3B0aW5kXSk7CisgICAgdmlydGRldiA9IGFyZ3Zbb3B0aW5kICsgMV07 CisgICAgZmlsZSA9IGFyZ3Zbb3B0aW5kICsgMl07CisKKyAgICBpZiAoY2RfaW5zZXJ0KGRvbWlk LCB2aXJ0ZGV2LCBmaWxlKSkKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKworICAgIHJl dHVybiBFWElUX1NVQ0NFU1M7Cit9CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2Rl OiBDCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBF bmQ6CisgKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL3hsL3hsX2NtZGltcGwuYyBiL3Rvb2xzL3hsL3hs X2NtZGltcGwuYwppbmRleCBmYWVhYzY3NWFkLi5lMTViYWFlODYxIDEwMDY0NAotLS0gYS90b29s cy94bC94bF9jbWRpbXBsLmMKKysrIGIvdG9vbHMveGwveGxfY21kaW1wbC5jCkBAIC0xMjEzLDg2 ICsxMjEzLDYgQEAgaW50IG1haW5fbWVtc2V0KGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICBy ZXR1cm4gc2V0X21lbW9yeV90YXJnZXQoZG9taWQsIG1lbSk7CiB9CiAKLXN0YXRpYyBpbnQgY2Rf aW5zZXJ0KHVpbnQzMl90IGRvbWlkLCBjb25zdCBjaGFyICp2aXJ0ZGV2LCBjaGFyICpwaHlzKQot ewotICAgIGxpYnhsX2RldmljZV9kaXNrIGRpc2s7Ci0gICAgY2hhciAqYnVmID0gTlVMTDsKLSAg ICBYTFVfQ29uZmlnICpjb25maWcgPSAwOwotICAgIHN0cnVjdCBzdGF0IGI7Ci0gICAgaW50IHI7 Ci0KLSAgICB4YXNwcmludGYoJmJ1ZiwgInZkZXY9JXMsYWNjZXNzPXIsZGV2dHlwZT1jZHJvbSx0 YXJnZXQ9JXMiLAotICAgICAgICAgICAgICB2aXJ0ZGV2LCBwaHlzID8gcGh5cyA6ICIiKTsKLQot ICAgIHBhcnNlX2Rpc2tfY29uZmlnKCZjb25maWcsIGJ1ZiwgJmRpc2spOwotCi0gICAgLyogQVRN IHRoZSBleGlzdGVuY2Ugb2YgdGhlIGJhY2tpbmcgZmlsZSBpcyBub3QgY2hlY2tlZCBmb3IgcWRp c2sKLSAgICAgKiBpbiBsaWJ4bF9jZHJvbV9pbnNlcnQoKSBiZWNhdXNlIFJBVyBpcyB1c2VkIGZv ciByZW1vdGUKLSAgICAgKiBwcm90b2NvbHMgYXMgd2VsbCBhcyBwbGFpbiBmaWxlcy4gIFRoaXMg d2lsbCBpZGVhbGx5IGJlIGNoYW5nZWQKLSAgICAgKiBmb3IgNC40LCBidXQgdGhpcyB3b3JrLWFy b3VuZCBmaXhlcyB0aGUgcHJvYmxlbSBvZiAiY2QtaW5zZXJ0IgotICAgICAqIHJldHVybmluZyBz dWNjZXNzIGZvciBub24tZXhpc3RlbnQgZmlsZXMuICovCi0gICAgaWYgKGRpc2suZm9ybWF0ICE9 IExJQlhMX0RJU0tfRk9STUFUX0VNUFRZCi0gICAgICAgICYmIHN0YXQoZGlzay5wZGV2X3BhdGgs ICZiKSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkNhbm5vdCBzdGF0IGZpbGU6ICVzXG4i LAotICAgICAgICAgICAgICAgIGRpc2sucGRldl9wYXRoKTsKLSAgICAgICAgciA9IDE7Ci0gICAg ICAgIGdvdG8gb3V0OwotICAgIH0KLQotICAgIGlmIChsaWJ4bF9jZHJvbV9pbnNlcnQoY3R4LCBk b21pZCwgJmRpc2ssIE5VTEwpKSB7Ci0gICAgICAgIHIgPSAxOwotICAgICAgICBnb3RvIG91dDsK LSAgICB9Ci0KLSAgICByID0gMDsKLQotb3V0OgotICAgIGxpYnhsX2RldmljZV9kaXNrX2Rpc3Bv c2UoJmRpc2spOwotICAgIGZyZWUoYnVmKTsKLQotICAgIHJldHVybiByOwotfQotCi1pbnQgbWFp bl9jZF9lamVjdChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi17Ci0gICAgdWludDMyX3QgZG9taWQ7 Ci0gICAgaW50IG9wdCA9IDA7Ci0gICAgY29uc3QgY2hhciAqdmlydGRldjsKLQotICAgIFNXSVRD SF9GT1JFQUNIX09QVChvcHQsICIiLCBOVUxMLCAiY2QtZWplY3QiLCAyKSB7Ci0gICAgICAgIC8q IE5vIG9wdGlvbnMgKi8KLSAgICB9Ci0KLSAgICBkb21pZCA9IHhmaW5kX2RvbWFpbihhcmd2W29w dGluZF0pOwotICAgIHZpcnRkZXYgPSBhcmd2W29wdGluZCArIDFdOwotCi0gICAgaWYgKGNkX2lu c2VydChkb21pZCwgdmlydGRldiwgTlVMTCkpCi0gICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7 Ci0KLSAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwotfQotCi1pbnQgbWFpbl9jZF9pbnNlcnQoaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQotewotICAgIHVpbnQzMl90IGRvbWlkOwotICAgIGludCBvcHQg PSAwOwotICAgIGNvbnN0IGNoYXIgKnZpcnRkZXY7Ci0gICAgY2hhciAqZmlsZSA9IE5VTEw7IC8q IG1vZGlmaWVkIGJ5IGNkX2luc2VydCB0b2tlbmlzaW5nIGl0ICovCi0KLSAgICBTV0lUQ0hfRk9S RUFDSF9PUFQob3B0LCAiIiwgTlVMTCwgImNkLWluc2VydCIsIDMpIHsKLSAgICAgICAgLyogTm8g b3B0aW9ucyAqLwotICAgIH0KLQotICAgIGRvbWlkID0geGZpbmRfZG9tYWluKGFyZ3Zbb3B0aW5k XSk7Ci0gICAgdmlydGRldiA9IGFyZ3Zbb3B0aW5kICsgMV07Ci0gICAgZmlsZSA9IGFyZ3Zbb3B0 aW5kICsgMl07Ci0KLSAgICBpZiAoY2RfaW5zZXJ0KGRvbWlkLCB2aXJ0ZGV2LCBmaWxlKSkKLSAg ICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLQotICAgIHJldHVybiBFWElUX1NVQ0NFU1M7Ci19 Ci0KIGludCBtYWluX2NvbnNvbGUoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogICAgIHVpbnQz Ml90IGRvbWlkOwotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==