From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH 2/2] xenstore: support XS_DIRECTORY_PART in libxenstore Date: Tue, 25 Oct 2016 07:52:41 +0200 Message-ID: <1477374761-25962-3-git-send-email-jgross@suse.com> References: <1477374761-25962-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: <1477374761-25962-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 , wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, david.vrabel@citrix.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org VGhpcyB3aWxsIGVuYWJsZSBhbGwgdXNlcnMgb2YgbGlieGVuc3RvcmUgdG8gaGFuZGxlIHhlbnN0 b3JlIG5vZGVzCndpdGggYSBodWdlIGFtb3VudCBvZiBjaGlsZHJlbi4KCkluIG9yZGVyIHRvIG5v dCBkZXBlbmQgY29tcGxldGVseSBvbiB0aGUgWFNfRElSRUNUT1JZX1BBUlQKZnVuY3Rpb25hbGl0 eSB1c2UgaXQgb25seSBpbiBjYXNlIG9mIEUyQklHIHJldHVybmVkIGJ5IFhTX0RJUkVDVE9SWS4K ClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tCiB0b29s cy94ZW5zdG9yZS94cy5jIHwgNzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCA4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hzLmMgYi90b29scy94ZW5z dG9yZS94cy5jCmluZGV4IGQxZTAxYmEuLmU2NGRlZDggMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0 b3JlL3hzLmMKKysrIGIvdG9vbHMveGVuc3RvcmUveHMuYwpAQCAtNTU4LDE1ICs1NTgsMTAgQEAg c3RhdGljIGJvb2wgeHNfYm9vbChjaGFyICpyZXBseSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotY2hh ciAqKnhzX2RpcmVjdG9yeShzdHJ1Y3QgeHNfaGFuZGxlICpoLCB4c190cmFuc2FjdGlvbl90IHQs Ci0JCSAgICBjb25zdCBjaGFyICpwYXRoLCB1bnNpZ25lZCBpbnQgKm51bSkKK3N0YXRpYyBjaGFy ICoqeHNfZGlyZWN0b3J5X2NvbW1vbihjaGFyICpzdHJpbmdzLCB1bnNpZ25lZCBpbnQgbGVuLAor CQkJCSAgdW5zaWduZWQgaW50ICpudW0pCiB7Ci0JY2hhciAqc3RyaW5ncywgKnAsICoqcmV0Owot CXVuc2lnbmVkIGludCBsZW47Ci0KLQlzdHJpbmdzID0geHNfc2luZ2xlKGgsIHQsIFhTX0RJUkVD VE9SWSwgcGF0aCwgJmxlbik7Ci0JaWYgKCFzdHJpbmdzKQotCQlyZXR1cm4gTlVMTDsKKwljaGFy ICpwLCAqKnJldDsKIAogCS8qIENvdW50IHRoZSBzdHJpbmdzLiAqLwogCSpudW0gPSB4c19jb3Vu dF9zdHJpbmdzKHN0cmluZ3MsIGxlbik7CkBAIC01ODYsNiArNTgxLDY5IEBAIGNoYXIgKip4c19k aXJlY3Rvcnkoc3RydWN0IHhzX2hhbmRsZSAqaCwgeHNfdHJhbnNhY3Rpb25fdCB0LAogCXJldHVy biByZXQ7CiB9CiAKK3N0YXRpYyBjaGFyICoqeHNfZGlyZWN0b3J5X3BhcnQoc3RydWN0IHhzX2hh bmRsZSAqaCwgeHNfdHJhbnNhY3Rpb25fdCB0LAorCQkJCWNvbnN0IGNoYXIgKnBhdGgsIHVuc2ln bmVkIGludCAqbnVtKQoreworCWNoYXIgKnN0cmluZ3MsICpwLCAqKnJldDsKKwl1bnNpZ25lZCBp bnQgbGVuLCBwX2xlbjsKKwlpbnQgc2F2ZWRfZXJybm87CisKKwlpZiAodCA9PSBYQlRfTlVMTCkg eworCQlmb3IgKDs7KSB7CisJCQl0ID0geHNfdHJhbnNhY3Rpb25fc3RhcnQoaCk7CisJCQlpZiAo dCA9PSBYQlRfTlVMTCkKKwkJCQlyZXR1cm4gTlVMTDsKKworCQkJcmV0ID0geHNfZGlyZWN0b3J5 X3BhcnQoaCwgdCwgcGF0aCwgbnVtKTsKKwkJCXNhdmVkX2Vycm5vID0gZXJybm87CisKKwkJCWlm ICh4c190cmFuc2FjdGlvbl9lbmQoaCwgdCwgZmFsc2UpIHx8IHJldCA9PSBOVUxMKSB7CisJCQkJ ZXJybm8gPSBzYXZlZF9lcnJubzsKKwkJCQlyZXR1cm4gcmV0OworCQkJfQorCisJCQlmcmVlKHJl dCk7CisJCX0KKwl9CisKKwlzdHJpbmdzID0geHNfc2luZ2xlKGgsIHQsIFhTX0RJUkVDVE9SWV9Q QVJULCBwYXRoLCAmbGVuKTsKKwlpZiAoIXN0cmluZ3MpIHsKKwkJLyogSWYgWFNfRElSRUNUT1JZ X1BBUlQgaXMgbm90IHN1cHBvcnRlZCByZXR1cm4gRTJCSUcuICovCisJCWlmIChlcnJubyA9PSBF Tk9TWVMpCisJCQllcnJubyA9IEUyQklHOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwl3aGlsZSAo bGVuID4gMSAmJiBzdHJpbmdzW2xlbiAtIDJdICE9IDApIHsKKwkJcCA9IHhzX3NpbmdsZShoLCB0 LCBYU19ESVJFQ1RPUllfUEFSVCwgIkAiLCAmcF9sZW4pOworCQlpZiAoIXApIHsKKwkJCWZyZWVf bm9fZXJybm8oc3RyaW5ncyk7CisJCQlyZXR1cm4gTlVMTDsKKwkJfQorCQlzdHJpbmdzID0gcmVh bGxvYyhzdHJpbmdzLCBsZW4gKyBwX2xlbik7CisJCW1lbWNweShzdHJpbmdzICsgbGVuLCBwLCBw X2xlbik7CisJCWxlbiArPSBwX2xlbjsKKwl9CisKKwlyZXR1cm4geHNfZGlyZWN0b3J5X2NvbW1v bihzdHJpbmdzLCBsZW4gLSAxLCBudW0pOworfQorCitjaGFyICoqeHNfZGlyZWN0b3J5KHN0cnVj dCB4c19oYW5kbGUgKmgsIHhzX3RyYW5zYWN0aW9uX3QgdCwKKwkJICAgIGNvbnN0IGNoYXIgKnBh dGgsIHVuc2lnbmVkIGludCAqbnVtKQoreworCWNoYXIgKnN0cmluZ3M7CisJdW5zaWduZWQgaW50 IGxlbjsKKworCXN0cmluZ3MgPSB4c19zaW5nbGUoaCwgdCwgWFNfRElSRUNUT1JZLCBwYXRoLCAm bGVuKTsKKwlpZiAoIXN0cmluZ3MpIHsKKwkJaWYgKGVycm5vICE9IEUyQklHKQorCQkJcmV0dXJu IE5VTEw7CisJCXJldHVybiB4c19kaXJlY3RvcnlfcGFydChoLCB0LCBwYXRoLCBudW0pOworCX0K KworCXJldHVybiB4c19kaXJlY3RvcnlfY29tbW9uKHN0cmluZ3MsIGxlbiwgbnVtKTsKK30KKwog LyogR2V0IHRoZSB2YWx1ZSBvZiBhIHNpbmdsZSBmaWxlLCBudWwgdGVybWluYXRlZC4KICAqIFJl dHVybnMgYSBtYWxsb2NlZCB2YWx1ZTogY2FsbCBmcmVlKCkgb24gaXQgYWZ0ZXIgdXNlLgogICog bGVuIGluZGljYXRlcyBsZW5ndGggaW4gYnl0ZXMsIG5vdCBpbmNsdWRpbmcgdGhlIG51bC4KLS0g CjIuNi42CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==