From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v4 06/12] xenstore: support XS_DIRECTORY_PART in libxenstore Date: Mon, 5 Dec 2016 08:48:47 +0100 Message-ID: <20161205074853.13268-7-jgross@suse.com> References: <20161205074853.13268-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 1cDo1Q-0003Ro-4B for xen-devel@lists.xenproject.org; Mon, 05 Dec 2016 07:49:12 +0000 In-Reply-To: <20161205074853.13268-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 , sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org VGhpcyB3aWxsIGVuYWJsZSBhbGwgdXNlcnMgb2YgbGlieGVuc3RvcmUgdG8gaGFuZGxlIHhlbnN0 b3JlIG5vZGVzCndpdGggYSBodWdlIGFtb3VudCBvZiBjaGlsZHJlbi4KCkluIG9yZGVyIHRvIG5v dCBkZXBlbmQgY29tcGxldGVseSBvbiB0aGUgWFNfRElSRUNUT1JZX1BBUlQKZnVuY3Rpb25hbGl0 eSB1c2UgaXQgb25seSBpbiBjYXNlIG9mIEUyQklHIHJldHVybmVkIGJ5IFhTX0RJUkVDVE9SWS4K ClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KUmV2aWV3ZWQt Ynk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Ci0tLQogdG9vbHMveGVuc3RvcmUveHMu YyB8IDgwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNzIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS90b29scy94ZW5zdG9yZS94cy5jIGIvdG9vbHMveGVuc3RvcmUveHMuYwppbmRl eCBkMWUwMWJhLi40MGUzMjc1IDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94cy5jCisrKyBi L3Rvb2xzL3hlbnN0b3JlL3hzLmMKQEAgLTU1OCwxNSArNTU4LDEwIEBAIHN0YXRpYyBib29sIHhz X2Jvb2woY2hhciAqcmVwbHkpCiAJcmV0dXJuIHRydWU7CiB9CiAKLWNoYXIgKip4c19kaXJlY3Rv cnkoc3RydWN0IHhzX2hhbmRsZSAqaCwgeHNfdHJhbnNhY3Rpb25fdCB0LAotCQkgICAgY29uc3Qg Y2hhciAqcGF0aCwgdW5zaWduZWQgaW50ICpudW0pCitzdGF0aWMgY2hhciAqKnhzX2RpcmVjdG9y eV9jb21tb24oY2hhciAqc3RyaW5ncywgdW5zaWduZWQgaW50IGxlbiwKKwkJCQkgIHVuc2lnbmVk IGludCAqbnVtKQogewotCWNoYXIgKnN0cmluZ3MsICpwLCAqKnJldDsKLQl1bnNpZ25lZCBpbnQg bGVuOwotCi0Jc3RyaW5ncyA9IHhzX3NpbmdsZShoLCB0LCBYU19ESVJFQ1RPUlksIHBhdGgsICZs ZW4pOwotCWlmICghc3RyaW5ncykKLQkJcmV0dXJuIE5VTEw7CisJY2hhciAqcCwgKipyZXQ7CiAK IAkvKiBDb3VudCB0aGUgc3RyaW5ncy4gKi8KIAkqbnVtID0geHNfY291bnRfc3RyaW5ncyhzdHJp bmdzLCBsZW4pOwpAQCAtNTg2LDYgKzU4MSw3NSBAQCBjaGFyICoqeHNfZGlyZWN0b3J5KHN0cnVj dCB4c19oYW5kbGUgKmgsIHhzX3RyYW5zYWN0aW9uX3QgdCwKIAlyZXR1cm4gcmV0OwogfQogCitz dGF0aWMgY2hhciAqKnhzX2RpcmVjdG9yeV9wYXJ0KHN0cnVjdCB4c19oYW5kbGUgKmgsIHhzX3Ry YW5zYWN0aW9uX3QgdCwKKwkJCQljb25zdCBjaGFyICpwYXRoLCB1bnNpZ25lZCBpbnQgKm51bSkK K3sKKwl1bnNpZ25lZCBpbnQgb2ZmLCByZXN1bHRfbGVuOworCWNoYXIgZ2VuWzI0XSwgb2Zmc3Ry WzhdOworCXN0cnVjdCBpb3ZlYyBpb3ZlY1syXTsKKwljaGFyICpyZXN1bHQgPSBOVUxMLCAqc3Ry aW5ncyA9IE5VTEw7CisKKwlnZW5bMF0gPSAwOworCWlvdmVjWzBdLmlvdl9iYXNlID0gKHZvaWQg KilwYXRoOworCWlvdmVjWzBdLmlvdl9sZW4gPSBzdHJsZW4ocGF0aCkgKyAxOworCisJZm9yIChv ZmYgPSAwOzspIHsKKwkJc25wcmludGYob2Zmc3RyLCBzaXplb2Yob2Zmc3RyKSwgIiV1Iiwgb2Zm KTsKKwkJaW92ZWNbMV0uaW92X2Jhc2UgPSAodm9pZCAqKW9mZnN0cjsKKwkJaW92ZWNbMV0uaW92 X2xlbiA9IHN0cmxlbihvZmZzdHIpICsgMTsKKwkJcmVzdWx0ID0geHNfdGFsa3YoaCwgdCwgWFNf RElSRUNUT1JZX1BBUlQsIGlvdmVjLCAyLAorCQkJCSAgJnJlc3VsdF9sZW4pOworCisJCS8qIElm IFhTX0RJUkVDVE9SWV9QQVJUIGlzbid0IHN1cHBvcnRlZCByZXR1cm4gRTJCSUcuICovCisJCWlm ICghcmVzdWx0KSB7CisJCQlpZiAoZXJybm8gPT0gRU5PU1lTKQorCQkJCWVycm5vID0gRTJCSUc7 CisJCQlyZXR1cm4gTlVMTDsKKwkJfQorCisJCWlmIChvZmYpIHsKKwkJCWlmIChzdHJjbXAoZ2Vu LCByZXN1bHQpKSB7CisJCQkJZnJlZShyZXN1bHQpOworCQkJCWZyZWUoc3RyaW5ncyk7CisJCQkJ c3RyaW5ncyA9IE5VTEw7CisJCQkJb2ZmID0gMDsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJfSBl bHNlCisJCQlzdHJuY3B5KGdlbiwgcmVzdWx0LCBzaXplb2YoZ2VuKSk7CisKKwkJcmVzdWx0X2xl biAtPSBzdHJsZW4ocmVzdWx0KSArIDE7CisJCXN0cmluZ3MgPSByZWFsbG9jKHN0cmluZ3MsIG9m ZiArIHJlc3VsdF9sZW4pOworCQltZW1jcHkoc3RyaW5ncyArIG9mZiwgcmVzdWx0ICsgc3RybGVu KHJlc3VsdCkgKyAxLCByZXN1bHRfbGVuKTsKKwkJZnJlZShyZXN1bHQpOworCQlvZmYgKz0gcmVz dWx0X2xlbjsKKworCQlpZiAob2ZmIDw9IDEgfHwgc3RyaW5nc1tvZmYgLSAyXSA9PSAwKQorCQkJ YnJlYWs7CisJfQorCisJaWYgKG9mZiA+IDEpCisJCW9mZi0tOworCisJcmV0dXJuIHhzX2RpcmVj dG9yeV9jb21tb24oc3RyaW5ncywgb2ZmLCBudW0pOworfQorCitjaGFyICoqeHNfZGlyZWN0b3J5 KHN0cnVjdCB4c19oYW5kbGUgKmgsIHhzX3RyYW5zYWN0aW9uX3QgdCwKKwkJICAgIGNvbnN0IGNo YXIgKnBhdGgsIHVuc2lnbmVkIGludCAqbnVtKQoreworCWNoYXIgKnN0cmluZ3M7CisJdW5zaWdu ZWQgaW50IGxlbjsKKworCXN0cmluZ3MgPSB4c19zaW5nbGUoaCwgdCwgWFNfRElSRUNUT1JZLCBw YXRoLCAmbGVuKTsKKwlpZiAoIXN0cmluZ3MpIHsKKwkJaWYgKGVycm5vICE9IEUyQklHKQorCQkJ cmV0dXJuIE5VTEw7CisJCXJldHVybiB4c19kaXJlY3RvcnlfcGFydChoLCB0LCBwYXRoLCBudW0p OworCX0KKworCXJldHVybiB4c19kaXJlY3RvcnlfY29tbW9uKHN0cmluZ3MsIGxlbiwgbnVtKTsK K30KKwogLyogR2V0IHRoZSB2YWx1ZSBvZiBhIHNpbmdsZSBmaWxlLCBudWwgdGVybWluYXRlZC4K ICAqIFJldHVybnMgYSBtYWxsb2NlZCB2YWx1ZTogY2FsbCBmcmVlKCkgb24gaXQgYWZ0ZXIgdXNl LgogICogbGVuIGluZGljYXRlcyBsZW5ndGggaW4gYnl0ZXMsIG5vdCBpbmNsdWRpbmcgdGhlIG51 bC4KLS0gCjIuMTAuMgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=