From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v2 03/13] xen/pvcalls: implement socket command and handle events Date: Tue, 25 Jul 2017 14:22:00 -0700 Message-ID: <1501017730-12797-3-git-send-email-sstabellini@kernel.org> References: <1501017730-12797-1-git-send-email-sstabellini@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1501017730-12797-1-git-send-email-sstabellini@kernel.org> 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: jgross@suse.com, Stefano Stabellini , boris.ostrovsky@oracle.com, sstabellini@kernel.org, linux-kernel@vger.kernel.org List-Id: xen-devel@lists.xenproject.org U2VuZCBhIFBWQ0FMTFNfU09DS0VUIGNvbW1hbmQgdG8gdGhlIGJhY2tlbmQsIHVzZSB0aGUgbWFz a2VkCnJlcV9wcm9kX3B2dCBhcyByZXFfaWQuIFRoaXMgd2F5LCByZXFfaWQgaXMgZ3VhcmFudGVl ZCB0byBiZSBiZXR3ZWVuIDAKYW5kIFBWQ0FMTFNfTlJfUkVRX1BFUl9SSU5HLiBXZSBhbHJlYWR5 IGhhdmUgYSBzbG90IGluIHRoZSByc3AgYXJyYXkKcmVhZHkgZm9yIHRoZSByZXNwb25zZSwgYW5k IHRoZXJlIGNhbm5vdCBiZSB0d28gb3V0c3RhbmRpbmcgcmVzcG9uc2VzCndpdGggdGhlIHNhbWUg cmVxX2lkLgoKV2FpdCBmb3IgdGhlIHJlc3BvbnNlIGJ5IHdhaXRpbmcgb24gdGhlIGluZmxpZ2h0 X3JlcSB3YWl0cXVldWUgYW5kCmNoZWNrIGZvciB0aGUgcmVxX2lkIGZpZWxkIGluIHJzcFtyZXFf aWRdLiBVc2UgYXRvbWljIGFjY2Vzc2VzIHRvCnJlYWQgdGhlIGZpZWxkLiBPbmNlIGEgcmVzcG9u c2UgaXMgcmVjZWl2ZWQsIGNsZWFyIHRoZSBjb3JyZXNwb25kaW5nIHJzcApzbG90IGJ5IHNldHRp bmcgcmVxX2lkIHRvIFBWQ0FMTFNfSU5WQUxJRF9JRC4gTm90ZSB0aGF0ClBWQ0FMTFNfSU5WQUxJ RF9JRCBpcyBpbnZhbGlkIG9ubHkgZnJvbSB0aGUgZnJvbnRlbmQgcG9pbnQgb2Ygdmlldy4gSXQK aXMgbm90IHBhcnQgb2YgdGhlIFBWQ2FsbHMgcHJvdG9jb2wuCgpwdmNhbGxzX2Zyb250X2V2ZW50 X2hhbmRsZXIgaXMgaW4gY2hhcmdlIG9mIGNvcHlpbmcgcmVzcG9uc2VzIGZyb20gdGhlCnJpbmcg dG8gdGhlIGFwcHJvcHJpYXRlIHJzcCBzbG90LiBJdCBpcyBkb25lIGJ5IGNvcHlpbmcgdGhlIGJv ZHkgb2YgdGhlCnJlc3BvbnNlIGZpcnN0LCB0aGVuIGJ5IGNvcHlpbmcgcmVxX2lkIGF0b21pY2Fs bHkuIEFmdGVyIHRoZSBjb3BpZXMsCndha2UgdXAgYW55Ym9keSB3YWl0aW5nIG9uIHdhaXRxdWV1 ZS4KCnB2Y2FsbHNzX2xvY2sgcHJvdGVjdHMgYWNjZXNzZXMgdG8gdGhlIHJpbmcuCgpTaWduZWQt b2ZmLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9AYXBvcmV0by5jb20+CkNDOiBib3Jp cy5vc3Ryb3Zza3lAb3JhY2xlLmNvbQpDQzogamdyb3NzQHN1c2UuY29tCi0tLQogZHJpdmVycy94 ZW4vcHZjYWxscy1mcm9udC5jIHwgOTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiBkcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmggfCAgOCArKysrCiAyIGZp bGVzIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy94ZW4vcHZjYWxscy1mcm9udC5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vcHZjYWxscy1m cm9udC5jIGIvZHJpdmVycy94ZW4vcHZjYWxscy1mcm9udC5jCmluZGV4IDVlMGIyNjUuLmQxZGJj ZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3B2Y2FsbHMtZnJvbnQuYworKysgYi9kcml2ZXJz L3hlbi9wdmNhbGxzLWZyb250LmMKQEAgLTIwLDYgKzIwLDggQEAKICNpbmNsdWRlIDx4ZW4veGVu YnVzLmg+CiAjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS9pby9wdmNhbGxzLmg+CiAKKyNpbmNsdWRl ICJwdmNhbGxzLWZyb250LmgiCisKICNkZWZpbmUgUFZDQUxMU19JTlZBTElEX0lEIChVSU5UX01B WCkKICNkZWZpbmUgUklOR19PUkRFUiBYRU5CVVNfTUFYX1JJTkdfR1JBTlRfT1JERVIKICNkZWZp bmUgUFZDQUxMU19OUl9SRVFfUEVSX1JJTkcgX19DT05TVF9SSU5HX1NJWkUoeGVuX3B2Y2FsbHMs IFhFTl9QQUdFX1NJWkUpCkBAIC00MCw5ICs0MiwxMDEgQEAgc3RydWN0IHB2Y2FsbHNfYmVkYXRh IHsKIAogc3RhdGljIGlycXJldHVybl90IHB2Y2FsbHNfZnJvbnRfZXZlbnRfaGFuZGxlcihpbnQg aXJxLCB2b2lkICpkZXZfaWQpCiB7CisJc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiA9IGRldl9p ZDsKKwlzdHJ1Y3QgcHZjYWxsc19iZWRhdGEgKmJlZGF0YTsKKwlzdHJ1Y3QgeGVuX3B2Y2FsbHNf cmVzcG9uc2UgKnJzcDsKKwl1aW50OF90ICpzcmMsICpkc3Q7CisJaW50IHJlcV9pZCA9IDAsIG1v cmUgPSAwLCBkb25lID0gMDsKKworCWlmIChkZXYgPT0gTlVMTCkKKwkJcmV0dXJuIElSUV9IQU5E TEVEOworCisJYmVkYXRhID0gZGV2X2dldF9kcnZkYXRhKCZkZXYtPmRldik7CisJaWYgKGJlZGF0 YSA9PSBOVUxMKQorCQlyZXR1cm4gSVJRX0hBTkRMRUQ7CisKK2FnYWluOgorCXdoaWxlIChSSU5H X0hBU19VTkNPTlNVTUVEX1JFU1BPTlNFUygmYmVkYXRhLT5yaW5nKSkgeworCQlyc3AgPSBSSU5H X0dFVF9SRVNQT05TRSgmYmVkYXRhLT5yaW5nLCBiZWRhdGEtPnJpbmcucnNwX2NvbnMpOworCisJ CXJlcV9pZCA9IHJzcC0+cmVxX2lkOworCQlzcmMgPSAodWludDhfdCAqKSZiZWRhdGEtPnJzcFty ZXFfaWRdOworCQlzcmMgKz0gc2l6ZW9mKHJzcC0+cmVxX2lkKTsKKwkJZHN0ID0gKHVpbnQ4X3Qg Kilyc3A7CisJCWRzdCArPSBzaXplb2YocnNwLT5yZXFfaWQpOworCQltZW1jcHkoZHN0LCBzcmMs IHNpemVvZigqcnNwKSAtIHNpemVvZihyc3AtPnJlcV9pZCkpOworCQkvKgorCQkgKiBGaXJzdCBj b3B5IHRoZSByZXN0IG9mIHRoZSBkYXRhLCB0aGVuIHJlcV9pZC4gSXQgaXMKKwkJICogcGFpcmVk IHdpdGggdGhlIGJhcnJpZXIgd2hlbiBhY2Nlc3NpbmcgYmVkYXRhLT5yc3AuCisJCSAqLworCQlz bXBfd21iKCk7CisJCVdSSVRFX09OQ0UoYmVkYXRhLT5yc3BbcmVxX2lkXS5yZXFfaWQsIHJzcC0+ cmVxX2lkKTsKKworCQlkb25lID0gMTsKKwkJYmVkYXRhLT5yaW5nLnJzcF9jb25zKys7CisJfQor CisJUklOR19GSU5BTF9DSEVDS19GT1JfUkVTUE9OU0VTKCZiZWRhdGEtPnJpbmcsIG1vcmUpOwor CWlmIChtb3JlKQorCQlnb3RvIGFnYWluOworCWlmIChkb25lKQorCQl3YWtlX3VwKCZiZWRhdGEt PmluZmxpZ2h0X3JlcSk7CiAJcmV0dXJuIElSUV9IQU5ETEVEOwogfQogCitpbnQgcHZjYWxsc19m cm9udF9zb2NrZXQoc3RydWN0IHNvY2tldCAqc29jaykKK3sKKwlzdHJ1Y3QgcHZjYWxsc19iZWRh dGEgKmJlZGF0YTsKKwlzdHJ1Y3QgeGVuX3B2Y2FsbHNfcmVxdWVzdCAqcmVxOworCWludCBub3Rp ZnksIHJlcV9pZCwgcmV0OworCisJaWYgKCFwdmNhbGxzX2Zyb250X2RldikKKwkJcmV0dXJuIC1F QUNDRVM7CisJLyoKKwkgKiBQVkNhbGxzIG9ubHkgc3VwcG9ydHMgZG9tYWluIEFGX0lORVQsCisJ ICogdHlwZSBTT0NLX1NUUkVBTSBhbmQgcHJvdG9jb2wgMCBzb2NrZXRzIGZvciBub3cuCisJICoK KwkgKiBDaGVjayBzb2NrZXQgdHlwZSBoZXJlLCBBRl9JTkVUIGFuZCBwcm90b2NvbCBjaGVja3Mg YXJlIGRvbmUKKwkgKiBieSB0aGUgY2FsbGVyLgorCSAqLworCWlmIChzb2NrLT50eXBlICE9IFNP Q0tfU1RSRUFNKQorCSAgICByZXR1cm4gLUVOT1RTVVBQOworCisJYmVkYXRhID0gZGV2X2dldF9k cnZkYXRhKCZwdmNhbGxzX2Zyb250X2Rldi0+ZGV2KTsKKworCXNwaW5fbG9jaygmYmVkYXRhLT5w dmNhbGxzc19sb2NrKTsKKwlyZXFfaWQgPSBiZWRhdGEtPnJpbmcucmVxX3Byb2RfcHZ0ICYgKFJJ TkdfU0laRSgmYmVkYXRhLT5yaW5nKSAtIDEpOworCWlmIChSSU5HX0ZVTEwoJmJlZGF0YS0+cmlu ZykgfHwKKwkgICAgUkVBRF9PTkNFKGJlZGF0YS0+cnNwW3JlcV9pZF0ucmVxX2lkKSAhPSBQVkNB TExTX0lOVkFMSURfSUQpIHsKKwkJc3Bpbl91bmxvY2soJmJlZGF0YS0+cHZjYWxsc3NfbG9jayk7 CisJCXJldHVybiAtRUFHQUlOOworCX0KKwlyZXEgPSBSSU5HX0dFVF9SRVFVRVNUKCZiZWRhdGEt PnJpbmcsIHJlcV9pZCk7CisJcmVxLT5yZXFfaWQgPSByZXFfaWQ7CisJcmVxLT5jbWQgPSBQVkNB TExTX1NPQ0tFVDsKKwlyZXEtPnUuc29ja2V0LmlkID0gKHVpbnQ2NF90KSBzb2NrOworCXJlcS0+ dS5zb2NrZXQuZG9tYWluID0gQUZfSU5FVDsKKwlyZXEtPnUuc29ja2V0LnR5cGUgPSBTT0NLX1NU UkVBTTsKKwlyZXEtPnUuc29ja2V0LnByb3RvY29sID0gMDsKKworCWJlZGF0YS0+cmluZy5yZXFf cHJvZF9wdnQrKzsKKwlSSU5HX1BVU0hfUkVRVUVTVFNfQU5EX0NIRUNLX05PVElGWSgmYmVkYXRh LT5yaW5nLCBub3RpZnkpOworCXNwaW5fdW5sb2NrKCZiZWRhdGEtPnB2Y2FsbHNzX2xvY2spOwor CWlmIChub3RpZnkpCisJCW5vdGlmeV9yZW1vdGVfdmlhX2lycShiZWRhdGEtPmlycSk7CisKKwlp ZiAod2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKGJlZGF0YS0+aW5mbGlnaHRfcmVxLAorCQlSRUFE X09OQ0UoYmVkYXRhLT5yc3BbcmVxX2lkXS5yZXFfaWQpID09IHJlcV9pZCkgIT0gMCkKKwkJcmV0 dXJuIC1FSU5UUjsKKworCXJldCA9IGJlZGF0YS0+cnNwW3JlcV9pZF0ucmV0OworCS8qIHJlYWQg cmV0LCB0aGVuIHNldCB0aGlzIHJzcCBzbG90IHRvIGJlIHJldXNlZCAqLworCXNtcF9tYigpOwor CVdSSVRFX09OQ0UoYmVkYXRhLT5yc3BbcmVxX2lkXS5yZXFfaWQsIFBWQ0FMTFNfSU5WQUxJRF9J RCk7CisKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhlbmJ1c19kZXZp Y2VfaWQgcHZjYWxsc19mcm9udF9pZHNbXSA9IHsKIAl7ICJwdmNhbGxzIiB9LAogCXsgIiIgfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vcHZjYWxscy1mcm9udC5oIGIvZHJpdmVycy94ZW4vcHZj YWxscy1mcm9udC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3ZGFiZWQK LS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmgKQEAgLTAsMCAr MSw4IEBACisjaWZuZGVmIF9fUFZDQUxMU19GUk9OVF9IX18KKyNkZWZpbmUgX19QVkNBTExTX0ZS T05UX0hfXworCisjaW5jbHVkZSA8bGludXgvbmV0Lmg+CisKK2ludCBwdmNhbGxzX2Zyb250X3Nv Y2tldChzdHJ1Y3Qgc29ja2V0ICpzb2NrKTsKKworI2VuZGlmCi0tIAoxLjkuMQoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1k ZXZlbAo=