From mboxrd@z Thu Jan 1 00:00:00 1970 From: Changlong Xie Subject: [PATCH v12 09/26] libxc/migration: export read_record for common use Date: Wed, 23 Mar 2016 16:06:23 +0800 Message-ID: <1458720400-4699-10-git-send-email-xiecl.fnst@cn.fujitsu.com> References: <1458720400-4699-1-git-send-email-xiecl.fnst@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458720400-4699-1-git-send-email-xiecl.fnst@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen devel , Konrad Rzeszutek Wilk , Andrew Cooper , Ian Campbell , Ian Jackson , Wei Liu Cc: Lars Kurth , Changlong Xie , Wen Congyang , Li Zhijian , Gui Jianfeng , Jiang Yunhong , Dong Eddie , Anthony Perard , Shriram Rajagopalan , Yang Hongyang List-Id: xen-devel@lists.xenproject.org RnJvbTogV2VuIENvbmd5YW5nIDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4KCnJlYWRfcmVjb3JkKCkg Y291bGQgYmUgdXNlZCBieSBwcmltYXJ5IHRvIHJlYWQgZGlydHkgYml0bWFwCnJlY29yZCBzZW50 IGJ5IHNlY29uZGFyeSB1bmRlciBDT0xPLgpXaGVuIHVzZWQgYnkgeGMgc2F2ZSBzaWRlLCB3ZSBu ZWVkIHRvIHBhc3MgdGhlIGJhY2tjaGFubmVsIGZkCmluc3RlYWQgb2YgY3R4LT5mZCB0byByZWFk X3JlY29yZCgpLCBzbyB3ZSBhZGRlZCBhIGZkIHBhcmFtIHRvCml0LgpObyBmdW5jdGlvbmFsIGNo YW5nZXMuCgpDQzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KU2ln bmVkLW9mZi1ieTogWWFuZyBIb25neWFuZyA8aG9uZ3lhbmcueWFuZ0BlYXN5c3RhY2suY24+ClNp Z25lZC1vZmYtYnk6IFdlbiBDb25neWFuZyA8d2VuY3lAY24uZnVqaXRzdS5jb20+ClNpZ25lZC1v ZmYtYnk6IENoYW5nbG9uZyBYaWUgPHhpZWNsLmZuc3RAY24uZnVqaXRzdS5jb20+CkFja2VkLWJ5 OiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KLS0tCiB0b29scy9saWJ4 Yy94Y19zcl9jb21tb24uYyAgfCA0OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogdG9vbHMvbGlieGMveGNfc3JfY29tbW9uLmggIHwgMTQgKysrKysrKysrKwogdG9vbHMvbGli eGMveGNfc3JfcmVzdG9yZS5jIHwgNjMgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDYyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX3NyX2NvbW1vbi5jIGIvdG9vbHMv bGlieGMveGNfc3JfY29tbW9uLmMKaW5kZXggMzMxM2E5MC4uYjIyOGExNSAxMDA2NDQKLS0tIGEv dG9vbHMvbGlieGMveGNfc3JfY29tbW9uLmMKKysrIGIvdG9vbHMvbGlieGMveGNfc3JfY29tbW9u LmMKQEAgLTg5LDYgKzg5LDU1IEBAIGludCB3cml0ZV9zcGxpdF9yZWNvcmQoc3RydWN0IHhjX3Ny X2NvbnRleHQgKmN0eCwgc3RydWN0IHhjX3NyX3JlY29yZCAqcmVjLAogICAgIHJldHVybiAtMTsK IH0KIAoraW50IHJlYWRfcmVjb3JkKHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgsIGludCBmZCwg c3RydWN0IHhjX3NyX3JlY29yZCAqcmVjKQoreworICAgIHhjX2ludGVyZmFjZSAqeGNoID0gY3R4 LT54Y2g7CisgICAgc3RydWN0IHhjX3NyX3JoZHIgcmhkcjsKKyAgICBzaXplX3QgZGF0YXN6Owor CisgICAgaWYgKCByZWFkX2V4YWN0KGZkLCAmcmhkciwgc2l6ZW9mKHJoZHIpKSApCisgICAgewor ICAgICAgICBQRVJST1IoIkZhaWxlZCB0byByZWFkIFJlY29yZCBIZWFkZXIgZnJvbSBzdHJlYW0i KTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBlbHNlIGlmICggcmhkci5sZW5ndGgg PiBSRUNfTEVOR1RIX01BWCApCisgICAgeworICAgICAgICBFUlJPUigiUmVjb3JkICgweCUwOHgs ICVzKSBsZW5ndGggJSN4IGV4Y2VlZHMgbWF4ICglI3gpIiwgcmhkci50eXBlLAorICAgICAgICAg ICAgICByZWNfdHlwZV90b19zdHIocmhkci50eXBlKSwgcmhkci5sZW5ndGgsIFJFQ19MRU5HVEhf TUFYKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGRhdGFzeiA9IFJPVU5EVVAo cmhkci5sZW5ndGgsIFJFQ19BTElHTl9PUkRFUik7CisKKyAgICBpZiAoIGRhdGFzeiApCisgICAg eworICAgICAgICByZWMtPmRhdGEgPSBtYWxsb2MoZGF0YXN6KTsKKworICAgICAgICBpZiAoICFy ZWMtPmRhdGEgKQorICAgICAgICB7CisgICAgICAgICAgICBFUlJPUigiVW5hYmxlIHRvIGFsbG9j YXRlICV6dSBieXRlcyBmb3IgcmVjb3JkIGRhdGEgKDB4JTA4eCwgJXMpIiwKKyAgICAgICAgICAg ICAgICAgIGRhdGFzeiwgcmhkci50eXBlLCByZWNfdHlwZV90b19zdHIocmhkci50eXBlKSk7Cisg ICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIHJlYWRfZXhh Y3QoZmQsIHJlYy0+ZGF0YSwgZGF0YXN6KSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGZyZWUo cmVjLT5kYXRhKTsKKyAgICAgICAgICAgIHJlYy0+ZGF0YSA9IE5VTEw7CisgICAgICAgICAgICBQ RVJST1IoIkZhaWxlZCB0byByZWFkICV6dSBieXRlcyBvZiBkYXRhIGZvciByZWNvcmQgKDB4JTA4 eCwgJXMpIiwKKyAgICAgICAgICAgICAgICAgICBkYXRhc3osIHJoZHIudHlwZSwgcmVjX3R5cGVf dG9fc3RyKHJoZHIudHlwZSkpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9Cisg ICAgfQorICAgIGVsc2UKKyAgICAgICAgcmVjLT5kYXRhID0gTlVMTDsKKworICAgIHJlYy0+dHlw ZSAgID0gcmhkci50eXBlOworICAgIHJlYy0+bGVuZ3RoID0gcmhkci5sZW5ndGg7CisKKyAgICBy ZXR1cm4gMDsKK307CisKIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGJ1aWxk X2Fzc2VydGlvbnModm9pZCkKIHsKICAgICBYQ19CVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCB4 Y19zcl9paGRyKSAhPSAyNCk7CmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19zcl9jb21tb24u aCBiL3Rvb2xzL2xpYnhjL3hjX3NyX2NvbW1vbi5oCmluZGV4IGU3NTY4YjUuLmM5OTA2NjQgMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3NyX2NvbW1vbi5oCisrKyBiL3Rvb2xzL2xpYnhjL3hj X3NyX2NvbW1vbi5oCkBAIC0zNzIsNiArMzcyLDIwIEBAIHN0YXRpYyBpbmxpbmUgaW50IHdyaXRl X3JlY29yZChzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4LAogfQogCiAvKgorICogUmVhZHMgYSBy ZWNvcmQgZnJvbSB0aGUgc3RyZWFtLCBhbmQgZmlsbHMgaW4gdGhlIHJlY29yZCBzdHJ1Y3R1cmUu CisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIG5vbi0wIG9uIGZhaWx1cmUuCisgKgor ICogT24gc3VjY2VzcywgdGhlIHJlY29yZHMgdHlwZSBhbmQgc2l6ZSBzaGFsbCBiZSB2YWxpZC4K KyAqIC0gSWYgc2l6ZSBpcyAwLCBkYXRhIHNoYWxsIGJlIE5VTEwuCisgKiAtIElmIHNpemUgaXMg bm9uLTAsIGRhdGEgc2hhbGwgYmUgYSBidWZmZXIgYWxsb2NhdGVkIGJ5IG1hbGxvYygpIHdoaWNo IG11c3QKKyAqICAgYmUgcGFzc2VkIHRvIGZyZWUoKSBieSB0aGUgY2FsbGVyLgorICoKKyAqIE9u IGZhaWx1cmUsIHRoZSBjb250ZW50cyBvZiB0aGUgcmVjb3JkIHN0cnVjdHVyZSBhcmUgdW5kZWZp bmVkLgorICovCitpbnQgcmVhZF9yZWNvcmQoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCwgaW50 IGZkLCBzdHJ1Y3QgeGNfc3JfcmVjb3JkICpyZWMpOworCisvKgogICogVGhpcyB3b3VsZCBpZGVh bGx5IGJlIHByaXZhdGUgaW4gcmVzdG9yZS5jLCBidXQgaXMgbmVlZGVkIGJ5CiAgKiB4ODZfcHZf bG9jYWxpc2VfcGFnZSgpIGlmIHdlIHJlY2VpdmUgcGFnZXRhYmxlcyBmcmFtZXMgYWhlYWQgb2Yg dGhlCiAgKiBjb250ZW50cyBvZiB0aGUgZnJhbWVzIHRoZXkgcG9pbnQgYXQuCmRpZmYgLS1naXQg YS90b29scy9saWJ4Yy94Y19zcl9yZXN0b3JlLmMgYi90b29scy9saWJ4Yy94Y19zcl9yZXN0b3Jl LmMKaW5kZXggMmI5YTBlYS4uM2U0Y2E3ZiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfc3Jf cmVzdG9yZS5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmUuYwpAQCAtNjksNjcgKzY5 LDYgQEAgc3RhdGljIGludCByZWFkX2hlYWRlcnMoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCkK IH0KIAogLyoKLSAqIFJlYWRzIGEgcmVjb3JkIGZyb20gdGhlIHN0cmVhbSwgYW5kIGZpbGxzIGlu IHRoZSByZWNvcmQgc3RydWN0dXJlLgotICoKLSAqIFJldHVybnMgMCBvbiBzdWNjZXNzIGFuZCBu b24tMCBvbiBmYWlsdXJlLgotICoKLSAqIE9uIHN1Y2Nlc3MsIHRoZSByZWNvcmRzIHR5cGUgYW5k IHNpemUgc2hhbGwgYmUgdmFsaWQuCi0gKiAtIElmIHNpemUgaXMgMCwgZGF0YSBzaGFsbCBiZSBO VUxMLgotICogLSBJZiBzaXplIGlzIG5vbi0wLCBkYXRhIHNoYWxsIGJlIGEgYnVmZmVyIGFsbG9j YXRlZCBieSBtYWxsb2MoKSB3aGljaCBtdXN0Ci0gKiAgIGJlIHBhc3NlZCB0byBmcmVlKCkgYnkg dGhlIGNhbGxlci4KLSAqCi0gKiBPbiBmYWlsdXJlLCB0aGUgY29udGVudHMgb2YgdGhlIHJlY29y ZCBzdHJ1Y3R1cmUgYXJlIHVuZGVmaW5lZC4KLSAqLwotc3RhdGljIGludCByZWFkX3JlY29yZChz dHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4LCBzdHJ1Y3QgeGNfc3JfcmVjb3JkICpyZWMpCi17Ci0g ICAgeGNfaW50ZXJmYWNlICp4Y2ggPSBjdHgtPnhjaDsKLSAgICBzdHJ1Y3QgeGNfc3JfcmhkciBy aGRyOwotICAgIHNpemVfdCBkYXRhc3o7Ci0KLSAgICBpZiAoIHJlYWRfZXhhY3QoY3R4LT5mZCwg JnJoZHIsIHNpemVvZihyaGRyKSkgKQotICAgIHsKLSAgICAgICAgUEVSUk9SKCJGYWlsZWQgdG8g cmVhZCBSZWNvcmQgSGVhZGVyIGZyb20gc3RyZWFtIik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAg ICB9Ci0gICAgZWxzZSBpZiAoIHJoZHIubGVuZ3RoID4gUkVDX0xFTkdUSF9NQVggKQotICAgIHsK LSAgICAgICAgRVJST1IoIlJlY29yZCAoMHglMDh4LCAlcykgbGVuZ3RoICUjeCBleGNlZWRzIG1h eCAoJSN4KSIsIHJoZHIudHlwZSwKLSAgICAgICAgICAgICAgcmVjX3R5cGVfdG9fc3RyKHJoZHIu dHlwZSksIHJoZHIubGVuZ3RoLCBSRUNfTEVOR1RIX01BWCk7Ci0gICAgICAgIHJldHVybiAtMTsK LSAgICB9Ci0KLSAgICBkYXRhc3ogPSBST1VORFVQKHJoZHIubGVuZ3RoLCBSRUNfQUxJR05fT1JE RVIpOwotCi0gICAgaWYgKCBkYXRhc3ogKQotICAgIHsKLSAgICAgICAgcmVjLT5kYXRhID0gbWFs bG9jKGRhdGFzeik7Ci0KLSAgICAgICAgaWYgKCAhcmVjLT5kYXRhICkKLSAgICAgICAgewotICAg ICAgICAgICAgRVJST1IoIlVuYWJsZSB0byBhbGxvY2F0ZSAlenUgYnl0ZXMgZm9yIHJlY29yZCBk YXRhICgweCUwOHgsICVzKSIsCi0gICAgICAgICAgICAgICAgICBkYXRhc3osIHJoZHIudHlwZSwg cmVjX3R5cGVfdG9fc3RyKHJoZHIudHlwZSkpOwotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAg ICAgICB9Ci0KLSAgICAgICAgaWYgKCByZWFkX2V4YWN0KGN0eC0+ZmQsIHJlYy0+ZGF0YSwgZGF0 YXN6KSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZyZWUocmVjLT5kYXRhKTsKLSAgICAgICAg ICAgIHJlYy0+ZGF0YSA9IE5VTEw7Ci0gICAgICAgICAgICBQRVJST1IoIkZhaWxlZCB0byByZWFk ICV6dSBieXRlcyBvZiBkYXRhIGZvciByZWNvcmQgKDB4JTA4eCwgJXMpIiwKLSAgICAgICAgICAg ICAgICAgICBkYXRhc3osIHJoZHIudHlwZSwgcmVjX3R5cGVfdG9fc3RyKHJoZHIudHlwZSkpOwot ICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9Ci0gICAgfQotICAgIGVsc2UKLSAgICAg ICAgcmVjLT5kYXRhID0gTlVMTDsKLQotICAgIHJlYy0+dHlwZSAgID0gcmhkci50eXBlOwotICAg IHJlYy0+bGVuZ3RoID0gcmhkci5sZW5ndGg7Ci0KLSAgICByZXR1cm4gMDsKLX07Ci0KLS8qCiAg KiBJcyBhIHBmbiBwb3B1bGF0ZWQ/CiAgKi8KIHN0YXRpYyBib29sIHBmbl9pc19wb3B1bGF0ZWQo Y29uc3Qgc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCwgeGVuX3Bmbl90IHBmbikKQEAgLTY1MCw3 ICs1ODksNyBAQCBzdGF0aWMgaW50IHJlc3RvcmUoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCkK IAogICAgIGRvCiAgICAgewotICAgICAgICByYyA9IHJlYWRfcmVjb3JkKGN0eCwgJnJlYyk7Cisg ICAgICAgIHJjID0gcmVhZF9yZWNvcmQoY3R4LCBjdHgtPmZkLCAmcmVjKTsKICAgICAgICAgaWYg KCByYyApCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICggY3R4LT5yZXN0b3JlLmJ1ZmZlcl9h bGxfcmVjb3JkcyApCi0tIAoxLjkuMwoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK