From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v4 3/6] xenstore: enhance control command support Date: Fri, 24 Feb 2017 07:21:42 +0100 Message-ID: <20170224062145.2041-4-jgross@suse.com> References: <20170224062145.2041-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ch9GT-0001xS-J2 for xen-devel@lists.xenproject.org; Fri, 24 Feb 2017 06:22:01 +0000 In-Reply-To: <20170224062145.2041-1-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.xenproject.org Cc: Juergen Gross , wei.liu2@citrix.com, ian.jackson@eu.citrix.com List-Id: xen-devel@lists.xenproject.org VGhlIFhlbnN0b3JlIHByb3RvY29sIHN1cHBvcnRzIHRoZSBYU19DT05UUk9MIGNvbW1hbmQgZm9y IHRyaWdnZXJpbmcKdmFyaW91cyBhY3Rpb25zIGluIHRoZSBYZW5zdG9yZSBkYWVtb24uIEVuaGFu Y2UgdGhhdCBzdXBwb3J0IGJ5IHVzaW5nCmEgY29tbWFuZCB0YWJsZSBhbmQgYWRkaW5nIGEgaGVs cCBmdW5jdGlvbi4KClN1cHBvcnQgbXVsdGlwbGUgY29udHJvbCBjb21tYW5kcyBpbiB0aGUgYXNz b2NpYXRlZCB4ZW5zdG9yZS1jb250cm9sCnByb2dyYW0gdXNlZCB0byBpc3N1ZSBYU19DT05UUk9M IGNvbW1hbmRzLgoKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29t PgotLS0KIHRvb2xzL3hlbnN0b3JlL3hlbnN0b3JlX2NvbnRyb2wuYyAgfCAgNzAgKysrKysrKysr KysrKysrKysrKy0tLS0tLS0KIHRvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb250cm9sLmMgfCAx MDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogMiBmaWxlcyBjaGFuZ2Vk LCAxNDAgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMv eGVuc3RvcmUveGVuc3RvcmVfY29udHJvbC5jIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVfY29u dHJvbC5jCmluZGV4IDBhMTA4ZGYuLmFmYTA0NDkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0b3Jl L3hlbnN0b3JlX2NvbnRyb2wuYworKysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZV9jb250cm9s LmMKQEAgLTcsMjkgKzcsNjEgQEAKIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQog ewotICBzdHJ1Y3QgeHNfaGFuZGxlICogeHNoOworICAgIHN0cnVjdCB4c19oYW5kbGUgKnhzaDsK KyAgICBjaGFyICpwYXIgPSBOVUxMOworICAgIGNoYXIgKnJldDsKKyAgICB1bnNpZ25lZCBpbnQg cCwgbGVuID0gMDsKKyAgICBpbnQgcmMgPSAwOwogCi0gIGlmIChhcmdjIDwgMiB8fAotICAgICAg c3RyY21wKGFyZ3ZbMV0sICJjaGVjayIpKQotICB7Ci0gICAgZnByaW50ZihzdGRlcnIsCi0gICAg ICAgICAgICAiVXNhZ2U6XG4iCi0gICAgICAgICAgICAiXG4iCi0gICAgICAgICAgICAiICAgICAg ICVzIGNoZWNrXG4iCi0gICAgICAgICAgICAiXG4iLCBhcmd2WzBdKTsKLSAgICByZXR1cm4gMjsK LSAgfQorICAgIGlmIChhcmdjIDwgMikgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVzYWdl OlxuIgorICAgICAgICAgICAgICAgICIlcyA8Y29tbWFuZD4gWzxhcmc+Li4uXVxuIiwgYXJndlsw XSk7CisgICAgICAgIHJjID0gMjsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQogCi0gIHhzaCA9 IHhzX2RhZW1vbl9vcGVuKCk7CisgICAgZm9yIChwID0gMjsgcCA8IGFyZ2M7IHArKykKKyAgICAg ICAgbGVuICs9IHN0cmxlbihhcmd2W3BdKSArIDE7CisgICAgaWYgKGxlbikgeworICAgICAgICBw YXIgPSBtYWxsb2MobGVuKTsKKyAgICAgICAgaWYgKCFwYXIpIHsKKyAgICAgICAgICAgIGZwcmlu dGYoc3RkZXJyLCAiQWxsb2NhdGlvbiBlcnJvci5cbiIpOworICAgICAgICAgICAgcmMgPSAxOwor ICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgIH0KKyAgICAgICAgbGVuID0gMDsKKyAgICAg ICAgZm9yIChwID0gMjsgcCA8IGFyZ2M7IHArKykgeworICAgICAgICAgICAgbWVtY3B5KHBhciAr IGxlbiwgYXJndltwXSwgc3RybGVuKGFyZ3ZbcF0pICsgMSk7CisgICAgICAgICAgICBsZW4gKz0g c3RybGVuKGFyZ3ZbcF0pICsgMTsKKyAgICAgICAgfQorICAgIH0KIAotICBpZiAoeHNoID09IE5V TEwpIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBjb250YWN0IFhlbnN0b3JlZC5c biIpOwotICAgIHJldHVybiAxOwotICB9CisgICAgeHNoID0geHNfb3BlbigwKTsKKyAgICBpZiAo eHNoID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gY29udGFj dCBYZW5zdG9yZWQuXG4iKTsKKyAgICAgICAgcmMgPSAxOworICAgICAgICBnb3RvIG91dDsKKyAg ICB9CiAKLSAgeHNfZGVidWdfY29tbWFuZCh4c2gsIGFyZ3ZbMV0sIE5VTEwsIDApOworICAgIHJl dCA9IHhzX2NvbnRyb2xfY29tbWFuZCh4c2gsIGFyZ3ZbMV0sIHBhciwgbGVuKTsKKyAgICBpZiAo IXJldCkgeworICAgICAgICByYyA9IDM7CisgICAgICAgIGlmIChlcnJubyA9PSBFSU5WQUwpIHsK KyAgICAgICAgICAgIHJldCA9IHhzX2NvbnRyb2xfY29tbWFuZCh4c2gsICJoZWxwIiwgTlVMTCwg MCk7CisgICAgICAgICAgICBpZiAocmV0KQorICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJy LCAiQ29tbWFuZCBub3Qgc3VwcG9ydGVkLiBWYWxpZCBjb21tYW5kcyBhcmU6XG4iCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIlc1xuIiwgcmV0KTsKKyAgICAgICAgICAgIGVsc2UK KyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yIHdoZW4gZXhlY3V0aW5nIGNv bW1hbmQuXG4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwg IkVycm9yICVkIHdoZW4gdHJ5aW5nIHRvIGV4ZWN1dGUgY29tbWFuZC5cbiIsCisgICAgICAgICAg ICAgICAgICAgIGVycm5vKTsKKyAgICB9IGVsc2UgaWYgKHN0cmxlbihyZXQpID4gMCkKKyAgICAg ICAgcHJpbnRmKCIlc1xuIiwgcmV0KTsKIAotICB4c19kYWVtb25fY2xvc2UoeHNoKTsKKyAgICB4 c19jbG9zZSh4c2gpOwogCi0gIHJldHVybiAwOworIG91dDoKKyAgICBmcmVlKHBhcik7CisgICAg cmV0dXJuIHJjOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRy b2wuYyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb250cm9sLmMKaW5kZXggZjE2OWQyMy4u MzA4MGU0NyAxMDA2NDQKLS0tIGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wuYwor KysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29udHJvbC5jCkBAIC0xNywzMCArMTcsMTA4 IEBACiAqLwogCiAjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNs dWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgogCiAjaW5jbHVkZSAidXRpbHMuaCIK KyNpbmNsdWRlICJ0YWxsb2MuaCIKICNpbmNsdWRlICJ4ZW5zdG9yZWRfY29yZS5oIgogI2luY2x1 ZGUgInhlbnN0b3JlZF9jb250cm9sLmgiCiAKK3N0cnVjdCBjbWRfcyB7CisJY2hhciAqY21kOwor CWludCAoKmZ1bmMpKHZvaWQgKiwgc3RydWN0IGNvbm5lY3Rpb24gKiwgY2hhciAqKiwgaW50KTsK KwljaGFyICpwYXJzOworfTsKKworc3RhdGljIGludCBkb19jb250cm9sX2NoZWNrKHZvaWQgKmN0 eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCQkgICAgY2hhciAqKnZlYywgaW50IG51bSkK K3sKKwlpZiAobnVtKQorCQlyZXR1cm4gRUlOVkFMOworCisJY2hlY2tfc3RvcmUoKTsKKworCXNl bmRfYWNrKGNvbm4sIFhTX0NPTlRST0wpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGRv X2NvbnRyb2xfcHJpbnQodm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJCSAg ICBjaGFyICoqdmVjLCBpbnQgbnVtKQoreworCWlmIChudW0gIT0gMSkKKwkJcmV0dXJuIEVJTlZB TDsKKworCXhwcmludGYoImNvbnRyb2w6ICVzIiwgdmVjWzBdKTsKKworCXNlbmRfYWNrKGNvbm4s IFhTX0NPTlRST0wpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGRvX2NvbnRyb2xfaGVs cCh2b2lkICosIHN0cnVjdCBjb25uZWN0aW9uICosIGNoYXIgKiosIGludCk7CisKK3N0YXRpYyBz dHJ1Y3QgY21kX3MgY21kc1tdID0geworCXsgImNoZWNrIiwgZG9fY29udHJvbF9jaGVjaywgIiIg fSwKKwl7ICJwcmludCIsIGRvX2NvbnRyb2xfcHJpbnQsICI8c3RyaW5nPiIgfSwKKwl7ICJoZWxw IiwgZG9fY29udHJvbF9oZWxwLCAiIiB9LAorfTsKKworc3RhdGljIGludCBkb19jb250cm9sX2hl bHAodm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJCSAgIGNoYXIgKip2ZWMs IGludCBudW0pCit7CisJaW50IGNtZCwgbGVuID0gMDsKKwljaGFyICpyZXNwOworCisJaWYgKG51 bSkKKwkJcmV0dXJuIEVJTlZBTDsKKworCWZvciAoY21kID0gMDsgY21kIDwgQVJSQVlfU0laRShj bWRzKTsgY21kKyspIHsKKwkJbGVuICs9IHN0cmxlbihjbWRzW2NtZF0uY21kKSArIDE7CisJCWxl biArPSBzdHJsZW4oY21kc1tjbWRdLnBhcnMpICsgMTsKKwl9CisJbGVuKys7CisKKwlyZXNwID0g dGFsbG9jX2FycmF5KGN0eCwgY2hhciwgbGVuKTsKKwlpZiAoIXJlc3ApCisJCXJldHVybiBFTk9N RU07CisKKwlsZW4gPSAwOworCWZvciAoY21kID0gMDsgY21kIDwgQVJSQVlfU0laRShjbWRzKTsg Y21kKyspIHsKKwkJc3RyY3B5KHJlc3AgKyBsZW4sIGNtZHNbY21kXS5jbWQpOworCQlsZW4gKz0g c3RybGVuKGNtZHNbY21kXS5jbWQpOworCQlyZXNwW2xlbl0gPSAnXHQnOworCQlsZW4rKzsKKwkJ c3RyY3B5KHJlc3AgKyBsZW4sIGNtZHNbY21kXS5wYXJzKTsKKwkJbGVuICs9IHN0cmxlbihjbWRz W2NtZF0ucGFycyk7CisJCXJlc3BbbGVuXSA9ICdcbic7CisJCWxlbisrOworCX0KKwlyZXNwW2xl bl0gPSAwOworCisJc2VuZF9yZXBseShjb25uLCBYU19DT05UUk9MLCByZXNwLCBsZW4pOworCXJl dHVybiAwOworfQorCiBpbnQgZG9fY29udHJvbChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCWludCBudW07CisJaW50IGNtZDsKKwljaGFyICoq dmVjOwogCiAJaWYgKGNvbm4tPmlkICE9IDApCiAJCXJldHVybiBFQUNDRVM7CiAKIAludW0gPSB4 c19jb3VudF9zdHJpbmdzKGluLT5idWZmZXIsIGluLT51c2VkKTsKKwl2ZWMgPSB0YWxsb2NfYXJy YXkoaW4sIGNoYXIgKiwgbnVtKTsKKwlpZiAoIXZlYykKKwkJcmV0dXJuIEVOT01FTTsKKwlpZiAo Z2V0X3N0cmluZ3MoaW4sIHZlYywgbnVtKSAhPSBudW0pCisJCXJldHVybiBFSU87CiAKLQlpZiAo c3RyZXEoaW4tPmJ1ZmZlciwgInByaW50IikpIHsKLQkJaWYgKG51bSA8IDIpCi0JCQlyZXR1cm4g RUlOVkFMOwotCQl4cHJpbnRmKCJjb250cm9sOiAlcyIsIGluLT5idWZmZXIgKyBzdHJsZW4oaW4t PmJ1ZmZlcikgKyAxKTsKLQl9CisJZm9yIChjbWQgPSAwOyBjbWQgPCBBUlJBWV9TSVpFKGNtZHMp OyBjbWQrKykKKwkJaWYgKHN0cmVxKHZlY1swXSwgY21kc1tjbWRdLmNtZCkpCisJCQlyZXR1cm4g Y21kc1tjbWRdLmZ1bmMoaW4sIGNvbm4sIHZlYyArIDEsIG51bSAtIDEpOwogCi0JaWYgKHN0cmVx KGluLT5idWZmZXIsICJjaGVjayIpKQotCQljaGVja19zdG9yZSgpOwotCi0Jc2VuZF9hY2soY29u biwgWFNfQ09OVFJPTCk7Ci0KLQlyZXR1cm4gMDsKKwlyZXR1cm4gRUlOVkFMOwogfQotLSAKMi4x MC4yCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==