From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v1 03/13] xen/pvcalls: implement socket command and handle events Date: Fri, 21 Jul 2017 17:11:53 -0700 Message-ID: <1500682323-25940-3-git-send-email-sstabellini@kernel.org> References: <1500682323-25940-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: <1500682323-25940-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 ZW4vcHZjYWxscy1mcm9udC5jIHwgOTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiBkcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmggfCAgOCArKysrCiAyIGZp bGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L3hlbi9wdmNhbGxzLWZyb250LmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9wdmNhbGxzLWZy b250LmMgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmMKaW5kZXggZmIwOGViZi4uNzkzM2M3 MyAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vcHZjYWxscy1mcm9udC5jCisrKyBiL2RyaXZlcnMv eGVuL3B2Y2FsbHMtZnJvbnQuYwpAQCAtNDAsOSArNDAsMTAwIEBAIHN0cnVjdCBwdmNhbGxzX2Jl ZGF0YSB7CiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBwdmNhbGxzX2Zyb250X2V2ZW50X2hhbmRsZXIo aW50IGlycSwgdm9pZCAqZGV2X2lkKQogeworCXN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYgPSBk ZXZfaWQ7CisJc3RydWN0IHB2Y2FsbHNfYmVkYXRhICpiZWRhdGE7CisJc3RydWN0IHhlbl9wdmNh bGxzX3Jlc3BvbnNlICpyc3A7CisJdWludDhfdCAqc3JjLCAqZHN0OworCWludCByZXFfaWQgPSAw LCBtb3JlID0gMDsKKworCWlmIChkZXYgPT0gTlVMTCkKKwkJcmV0dXJuIElSUV9IQU5ETEVEOwor CisJYmVkYXRhID0gZGV2X2dldF9kcnZkYXRhKCZkZXYtPmRldik7CisJaWYgKGJlZGF0YSA9PSBO VUxMKQorCQlyZXR1cm4gSVJRX0hBTkRMRUQ7CisKK2FnYWluOgorCXdoaWxlIChSSU5HX0hBU19V TkNPTlNVTUVEX1JFU1BPTlNFUygmYmVkYXRhLT5yaW5nKSkgeworCQlyc3AgPSBSSU5HX0dFVF9S RVNQT05TRSgmYmVkYXRhLT5yaW5nLCBiZWRhdGEtPnJpbmcucnNwX2NvbnMpOworCisJCXJlcV9p ZCA9IHJzcC0+cmVxX2lkOworCQlzcmMgPSAodWludDhfdCAqKSZiZWRhdGEtPnJzcFtyZXFfaWRd OworCQlzcmMgKz0gc2l6ZW9mKHJzcC0+cmVxX2lkKTsKKwkJZHN0ID0gKHVpbnQ4X3QgKilyc3A7 CisJCWRzdCArPSBzaXplb2YocnNwLT5yZXFfaWQpOworCQltZW1jcHkoZHN0LCBzcmMsIHNpemVv ZigqcnNwKSAtIHNpemVvZihyc3AtPnJlcV9pZCkpOworCQkvKgorCQkgKiBGaXJzdCBjb3B5IHRo ZSByZXN0IG9mIHRoZSBkYXRhLCB0aGVuIHJlcV9pZC4gSXQgaXMKKwkJICogcGFpcmVkIHdpdGgg dGhlIGJhcnJpZXIgd2hlbiBhY2Nlc3NpbmcgYmVkYXRhLT5yc3AuCisJCSAqLworCQlzbXBfd21i KCk7CisJCVdSSVRFX09OQ0UoYmVkYXRhLT5yc3BbcmVxX2lkXS5yZXFfaWQsIHJzcC0+cmVxX2lk KTsKKworCQliZWRhdGEtPnJpbmcucnNwX2NvbnMrKzsKKwkJd2FrZV91cCgmYmVkYXRhLT5pbmZs aWdodF9yZXEpOworCX0KKworCVJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JFU1BPTlNFUygmYmVkYXRh LT5yaW5nLCBtb3JlKTsKKwlpZiAobW9yZSkKKwkJZ290byBhZ2FpbjsKIAlyZXR1cm4gSVJRX0hB TkRMRUQ7CiB9CiAKK2ludCBwdmNhbGxzX2Zyb250X3NvY2tldChzdHJ1Y3Qgc29ja2V0ICpzb2Nr KQoreworCXN0cnVjdCBwdmNhbGxzX2JlZGF0YSAqYmVkYXRhOworCXN0cnVjdCB4ZW5fcHZjYWxs c19yZXF1ZXN0ICpyZXE7CisJaW50IG5vdGlmeSwgcmVxX2lkLCByZXQ7CisKKwlpZiAoIXB2Y2Fs bHNfZnJvbnRfZGV2KQorCQlyZXR1cm4gLUVBQ0NFUzsKKwkvKgorCSAqIFBWQ2FsbHMgb25seSBz dXBwb3J0cyBkb21haW4gQUZfSU5FVCwKKwkgKiB0eXBlIFNPQ0tfU1RSRUFNIGFuZCBwcm90b2Nv bCAwIHNvY2tldHMgZm9yIG5vdy4KKwkgKgorCSAqIENoZWNrIHNvY2tldCB0eXBlIGhlcmUsIEFG X0lORVQgYW5kIHByb3RvY29sIGNoZWNrcyBhcmUgZG9uZQorCSAqIGJ5IHRoZSBjYWxsZXIuCisJ ICovCisJaWYgKHNvY2stPnR5cGUgIT0gU09DS19TVFJFQU0pCisJICAgIHJldHVybiAtRU5PVFNV UFA7CisKKwliZWRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoJnB2Y2FsbHNfZnJvbnRfZGV2LT5kZXYp OworCisJc3Bpbl9sb2NrKCZiZWRhdGEtPnB2Y2FsbHNzX2xvY2spOworCXJlcV9pZCA9IGJlZGF0 YS0+cmluZy5yZXFfcHJvZF9wdnQgJiAoUklOR19TSVpFKCZiZWRhdGEtPnJpbmcpIC0gMSk7CisJ QlVHX09OKHJlcV9pZCA+PSBQVkNBTExTX05SX1JFUV9QRVJfUklORyk7CisJaWYgKFJJTkdfRlVM TCgmYmVkYXRhLT5yaW5nKSB8fAorCSAgICBSRUFEX09OQ0UoYmVkYXRhLT5yc3BbcmVxX2lkXS5y ZXFfaWQpICE9IFBWQ0FMTFNfSU5WQUxJRF9JRCkgeworCQlzcGluX3VubG9jaygmYmVkYXRhLT5w dmNhbGxzc19sb2NrKTsKKwkJcmV0dXJuIC1FQUdBSU47CisJfQorCXJlcSA9IFJJTkdfR0VUX1JF UVVFU1QoJmJlZGF0YS0+cmluZywgcmVxX2lkKTsKKwlyZXEtPnJlcV9pZCA9IHJlcV9pZDsKKwly ZXEtPmNtZCA9IFBWQ0FMTFNfU09DS0VUOworCXJlcS0+dS5zb2NrZXQuaWQgPSAodWludDY0X3Qp IHNvY2s7CisJcmVxLT51LnNvY2tldC5kb21haW4gPSBBRl9JTkVUOworCXJlcS0+dS5zb2NrZXQu dHlwZSA9IFNPQ0tfU1RSRUFNOworCXJlcS0+dS5zb2NrZXQucHJvdG9jb2wgPSAwOworCisJYmVk YXRhLT5yaW5nLnJlcV9wcm9kX3B2dCsrOworCVJJTkdfUFVTSF9SRVFVRVNUU19BTkRfQ0hFQ0tf Tk9USUZZKCZiZWRhdGEtPnJpbmcsIG5vdGlmeSk7CisJc3Bpbl91bmxvY2soJmJlZGF0YS0+cHZj YWxsc3NfbG9jayk7CisJaWYgKG5vdGlmeSkKKwkJbm90aWZ5X3JlbW90ZV92aWFfaXJxKGJlZGF0 YS0+aXJxKTsKKworCWlmICh3YWl0X2V2ZW50X2ludGVycnVwdGlibGUoYmVkYXRhLT5pbmZsaWdo dF9yZXEsCisJCVJFQURfT05DRShiZWRhdGEtPnJzcFtyZXFfaWRdLnJlcV9pZCkgPT0gcmVxX2lk KSAhPSAwKQorCQlyZXR1cm4gLUVJTlRSOworCisJcmV0ID0gYmVkYXRhLT5yc3BbcmVxX2lkXS5y ZXQ7CisJLyogcmVhZCByZXQsIHRoZW4gc2V0IHRoaXMgcnNwIHNsb3QgdG8gYmUgcmV1c2VkICov CisJc21wX21iKCk7CisJV1JJVEVfT05DRShiZWRhdGEtPnJzcFtyZXFfaWRdLnJlcV9pZCwgUFZD QUxMU19JTlZBTElEX0lEKTsKKworCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgeGVuYnVzX2RldmljZV9pZCBwdmNhbGxzX2Zyb250X2lkc1tdID0gewogCXsgInB2Y2FsbHMi IH0sCiAJeyAiIiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmggYi9k cml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uYjdkYWJlZAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtZnJv bnQuaApAQCAtMCwwICsxLDggQEAKKyNpZm5kZWYgX19QVkNBTExTX0ZST05UX0hfXworI2RlZmlu ZSBfX1BWQ0FMTFNfRlJPTlRfSF9fCisKKyNpbmNsdWRlIDxsaW51eC9uZXQuaD4KKworaW50IHB2 Y2FsbHNfZnJvbnRfc29ja2V0KHN0cnVjdCBzb2NrZXQgKnNvY2spOworCisjZW5kaWYKLS0gCjEu OS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==