From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v3 06/12] xenstore: support XS_DIRECTORY_PART in libxenstore Date: Fri, 11 Nov 2016 09:00:04 +0100 Message-ID: <1478851210-6251-7-git-send-email-jgross@suse.com> References: <1478851210-6251-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1478851210-6251-1-git-send-email-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.xen.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 ClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tCiB0b29s cy94ZW5zdG9yZS94cy5jIHwgODAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hzLmMgYi90b29scy94ZW5z dG9yZS94cy5jCmluZGV4IGQxZTAxYmEuLjQwZTMyNzUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0 b3JlL3hzLmMKKysrIGIvdG9vbHMveGVuc3RvcmUveHMuYwpAQCAtNTU4LDE1ICs1NTgsMTAgQEAg c3RhdGljIGJvb2wgeHNfYm9vbChjaGFyICpyZXBseSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotY2hh ciAqKnhzX2RpcmVjdG9yeShzdHJ1Y3QgeHNfaGFuZGxlICpoLCB4c190cmFuc2FjdGlvbl90IHQs Ci0JCSAgICBjb25zdCBjaGFyICpwYXRoLCB1bnNpZ25lZCBpbnQgKm51bSkKK3N0YXRpYyBjaGFy ICoqeHNfZGlyZWN0b3J5X2NvbW1vbihjaGFyICpzdHJpbmdzLCB1bnNpZ25lZCBpbnQgbGVuLAor CQkJCSAgdW5zaWduZWQgaW50ICpudW0pCiB7Ci0JY2hhciAqc3RyaW5ncywgKnAsICoqcmV0Owot CXVuc2lnbmVkIGludCBsZW47Ci0KLQlzdHJpbmdzID0geHNfc2luZ2xlKGgsIHQsIFhTX0RJUkVD VE9SWSwgcGF0aCwgJmxlbik7Ci0JaWYgKCFzdHJpbmdzKQotCQlyZXR1cm4gTlVMTDsKKwljaGFy ICpwLCAqKnJldDsKIAogCS8qIENvdW50IHRoZSBzdHJpbmdzLiAqLwogCSpudW0gPSB4c19jb3Vu dF9zdHJpbmdzKHN0cmluZ3MsIGxlbik7CkBAIC01ODYsNiArNTgxLDc1IEBAIGNoYXIgKip4c19k aXJlY3Rvcnkoc3RydWN0IHhzX2hhbmRsZSAqaCwgeHNfdHJhbnNhY3Rpb25fdCB0LAogCXJldHVy biByZXQ7CiB9CiAKK3N0YXRpYyBjaGFyICoqeHNfZGlyZWN0b3J5X3BhcnQoc3RydWN0IHhzX2hh bmRsZSAqaCwgeHNfdHJhbnNhY3Rpb25fdCB0LAorCQkJCWNvbnN0IGNoYXIgKnBhdGgsIHVuc2ln bmVkIGludCAqbnVtKQoreworCXVuc2lnbmVkIGludCBvZmYsIHJlc3VsdF9sZW47CisJY2hhciBn ZW5bMjRdLCBvZmZzdHJbOF07CisJc3RydWN0IGlvdmVjIGlvdmVjWzJdOworCWNoYXIgKnJlc3Vs dCA9IE5VTEwsICpzdHJpbmdzID0gTlVMTDsKKworCWdlblswXSA9IDA7CisJaW92ZWNbMF0uaW92 X2Jhc2UgPSAodm9pZCAqKXBhdGg7CisJaW92ZWNbMF0uaW92X2xlbiA9IHN0cmxlbihwYXRoKSAr IDE7CisKKwlmb3IgKG9mZiA9IDA7OykgeworCQlzbnByaW50ZihvZmZzdHIsIHNpemVvZihvZmZz dHIpLCAiJXUiLCBvZmYpOworCQlpb3ZlY1sxXS5pb3ZfYmFzZSA9ICh2b2lkICopb2Zmc3RyOwor CQlpb3ZlY1sxXS5pb3ZfbGVuID0gc3RybGVuKG9mZnN0cikgKyAxOworCQlyZXN1bHQgPSB4c190 YWxrdihoLCB0LCBYU19ESVJFQ1RPUllfUEFSVCwgaW92ZWMsIDIsCisJCQkJICAmcmVzdWx0X2xl bik7CisKKwkJLyogSWYgWFNfRElSRUNUT1JZX1BBUlQgaXNuJ3Qgc3VwcG9ydGVkIHJldHVybiBF MkJJRy4gKi8KKwkJaWYgKCFyZXN1bHQpIHsKKwkJCWlmIChlcnJubyA9PSBFTk9TWVMpCisJCQkJ ZXJybm8gPSBFMkJJRzsKKwkJCXJldHVybiBOVUxMOworCQl9CisKKwkJaWYgKG9mZikgeworCQkJ aWYgKHN0cmNtcChnZW4sIHJlc3VsdCkpIHsKKwkJCQlmcmVlKHJlc3VsdCk7CisJCQkJZnJlZShz dHJpbmdzKTsKKwkJCQlzdHJpbmdzID0gTlVMTDsKKwkJCQlvZmYgPSAwOworCQkJCWNvbnRpbnVl OworCQkJfQorCQl9IGVsc2UKKwkJCXN0cm5jcHkoZ2VuLCByZXN1bHQsIHNpemVvZihnZW4pKTsK KworCQlyZXN1bHRfbGVuIC09IHN0cmxlbihyZXN1bHQpICsgMTsKKwkJc3RyaW5ncyA9IHJlYWxs b2Moc3RyaW5ncywgb2ZmICsgcmVzdWx0X2xlbik7CisJCW1lbWNweShzdHJpbmdzICsgb2ZmLCBy ZXN1bHQgKyBzdHJsZW4ocmVzdWx0KSArIDEsIHJlc3VsdF9sZW4pOworCQlmcmVlKHJlc3VsdCk7 CisJCW9mZiArPSByZXN1bHRfbGVuOworCisJCWlmIChvZmYgPD0gMSB8fCBzdHJpbmdzW29mZiAt IDJdID09IDApCisJCQlicmVhazsKKwl9CisKKwlpZiAob2ZmID4gMSkKKwkJb2ZmLS07CisKKwly ZXR1cm4geHNfZGlyZWN0b3J5X2NvbW1vbihzdHJpbmdzLCBvZmYsIG51bSk7Cit9CisKK2NoYXIg Kip4c19kaXJlY3Rvcnkoc3RydWN0IHhzX2hhbmRsZSAqaCwgeHNfdHJhbnNhY3Rpb25fdCB0LAor CQkgICAgY29uc3QgY2hhciAqcGF0aCwgdW5zaWduZWQgaW50ICpudW0pCit7CisJY2hhciAqc3Ry aW5nczsKKwl1bnNpZ25lZCBpbnQgbGVuOworCisJc3RyaW5ncyA9IHhzX3NpbmdsZShoLCB0LCBY U19ESVJFQ1RPUlksIHBhdGgsICZsZW4pOworCWlmICghc3RyaW5ncykgeworCQlpZiAoZXJybm8g IT0gRTJCSUcpCisJCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIHhzX2RpcmVjdG9yeV9wYXJ0KGgs IHQsIHBhdGgsIG51bSk7CisJfQorCisJcmV0dXJuIHhzX2RpcmVjdG9yeV9jb21tb24oc3RyaW5n cywgbGVuLCBudW0pOworfQorCiAvKiBHZXQgdGhlIHZhbHVlIG9mIGEgc2luZ2xlIGZpbGUsIG51 bCB0ZXJtaW5hdGVkLgogICogUmV0dXJucyBhIG1hbGxvY2VkIHZhbHVlOiBjYWxsIGZyZWUoKSBv biBpdCBhZnRlciB1c2UuCiAgKiBsZW4gaW5kaWNhdGVzIGxlbmd0aCBpbiBieXRlcywgbm90IGlu Y2x1ZGluZyB0aGUgbnVsLgotLSAKMi42LjYKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK