From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v4 12/18] xen/pvcalls: implement poll command Date: Thu, 15 Jun 2017 12:09:41 -0700 Message-ID: <1497553787-3709-12-git-send-email-sstabellini@kernel.org> References: <1497553787-3709-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: <1497553787-3709-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 SW1wbGVtZW50IHBvbGwgb24gcGFzc2l2ZSBzb2NrZXRzIGJ5IHJlcXVlc3RpbmcgYSBkZWxheWVk IHJlc3BvbnNlIHdpdGgKbWFwcGFzcy0+cmVxY29weSwgYW5kIHJlcGx5IGJhY2sgd2hlbiB0aGVy ZSBpcyBkYXRhIG9uIHRoZSBwYXNzaXZlCnNvY2tldC4KClBvbGwgb24gYWN0aXZlIHNvY2tldCBp cyB1bmltcGxlbWVudGVkIGFzIGJ5IHRoZSBzcGVjLCBhcyB0aGUgZnJvbnRlbmQKc2hvdWxkIGp1 c3Qgd2FpdCBmb3IgZXZlbnRzIGFuZCBjaGVjayB0aGUgaW5kZXhlcyBvbiB0aGUgaW5kZXhlcyBw YWdlLgoKT25seSBzdXBwb3J0IG9uZSBvdXRzdGFuZGluZyBwb2xsIChvciBhY2NlcHQpIHJlcXVl c3QgZm9yIGV2ZXJ5IHBhc3NpdmUKc29ja2V0IGF0IGFueSBnaXZlbiB0aW1lLgoKU2lnbmVkLW9m Zi1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vQGFwb3JldG8uY29tPgpDQzogYm9yaXMu b3N0cm92c2t5QG9yYWNsZS5jb20KQ0M6IGpncm9zc0BzdXNlLmNvbQotLS0KIGRyaXZlcnMveGVu L3B2Y2FsbHMtYmFjay5jIHwgNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2suYyBiL2RyaXZlcnMveGVu L3B2Y2FsbHMtYmFjay5jCmluZGV4IDcwMWYxZmMuLmJlODU5NzcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMveGVuL3B2Y2FsbHMtYmFjay5jCisrKyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtYmFjay5jCkBA IC0zNDgsMTEgKzM0OCwzMyBAQCBzdGF0aWMgdm9pZCBfX3B2Y2FsbHNfYmFja19hY2NlcHQoc3Ry dWN0IHdvcmtfc3RydWN0ICp3b3JrKQogc3RhdGljIHZvaWQgcHZjYWxsc19wYXNzX3NrX2RhdGFf cmVhZHkoc3RydWN0IHNvY2sgKnNvY2spCiB7CiAJc3RydWN0IHNvY2twYXNzX21hcHBpbmcgKm1h cHBhc3MgPSBzb2NrLT5za191c2VyX2RhdGE7CisJc3RydWN0IHB2Y2FsbHNfZmVkYXRhICpmZWRh dGE7CisJc3RydWN0IHhlbl9wdmNhbGxzX3Jlc3BvbnNlICpyc3A7CisJdW5zaWduZWQgbG9uZyBm bGFnczsKKwlpbnQgbm90aWZ5OwogCiAJaWYgKG1hcHBhc3MgPT0gTlVMTCkKIAkJcmV0dXJuOwog Ci0JcXVldWVfd29yayhtYXBwYXNzLT53cSwgJm1hcHBhc3MtPnJlZ2lzdGVyX3dvcmspOworCWZl ZGF0YSA9IG1hcHBhc3MtPmZlZGF0YTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmbWFwcGFzcy0+Y29w eV9sb2NrLCBmbGFncyk7CisJaWYgKG1hcHBhc3MtPnJlcWNvcHkuY21kID09IFBWQ0FMTFNfUE9M TCkgeworCQlyc3AgPSBSSU5HX0dFVF9SRVNQT05TRSgmZmVkYXRhLT5yaW5nLCBmZWRhdGEtPnJp bmcucnNwX3Byb2RfcHZ0KyspOworCQlyc3AtPnJlcV9pZCA9IG1hcHBhc3MtPnJlcWNvcHkucmVx X2lkOworCQlyc3AtPnUucG9sbC5pZCA9IG1hcHBhc3MtPnJlcWNvcHkudS5wb2xsLmlkOworCQly c3AtPmNtZCA9IG1hcHBhc3MtPnJlcWNvcHkuY21kOworCQlyc3AtPnJldCA9IDA7CisKKwkJbWFw cGFzcy0+cmVxY29weS5jbWQgPSAwOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtYXBwYXNz LT5jb3B5X2xvY2ssIGZsYWdzKTsKKworCQlSSU5HX1BVU0hfUkVTUE9OU0VTX0FORF9DSEVDS19O T1RJRlkoJmZlZGF0YS0+cmluZywgbm90aWZ5KTsKKwkJaWYgKG5vdGlmeSkKKwkJCW5vdGlmeV9y ZW1vdGVfdmlhX2lycShtYXBwYXNzLT5mZWRhdGEtPmlycSk7CisJfSBlbHNlIHsKKwkJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmbWFwcGFzcy0+Y29weV9sb2NrLCBmbGFncyk7CisJCXF1ZXVlX3dv cmsobWFwcGFzcy0+d3EsICZtYXBwYXNzLT5yZWdpc3Rlcl93b3JrKTsKKwl9CiB9CiAKIHN0YXRp YyBpbnQgcHZjYWxsc19iYWNrX2JpbmQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKQEAgLTQ5 OSw2ICs1MjEsNTUgQEAgc3RhdGljIGludCBwdmNhbGxzX2JhY2tfYWNjZXB0KHN0cnVjdCB4ZW5i dXNfZGV2aWNlICpkZXYsCiBzdGF0aWMgaW50IHB2Y2FsbHNfYmFja19wb2xsKHN0cnVjdCB4ZW5i dXNfZGV2aWNlICpkZXYsCiAJCQkgICAgIHN0cnVjdCB4ZW5fcHZjYWxsc19yZXF1ZXN0ICpyZXEp CiB7CisJc3RydWN0IHB2Y2FsbHNfZmVkYXRhICpmZWRhdGE7CisJc3RydWN0IHNvY2twYXNzX21h cHBpbmcgKm1hcHBhc3M7CisJc3RydWN0IHhlbl9wdmNhbGxzX3Jlc3BvbnNlICpyc3A7CisJc3Ry dWN0IGluZXRfY29ubmVjdGlvbl9zb2NrICppY3NrOworCXN0cnVjdCByZXF1ZXN0X3NvY2tfcXVl dWUgKnF1ZXVlOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJldDsKKwlib29sIGRhdGE7 CisKKwlmZWRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoJmRldi0+ZGV2KTsKKworCW1hcHBhc3MgPSBy YWRpeF90cmVlX2xvb2t1cCgmZmVkYXRhLT5zb2NrZXRwYXNzX21hcHBpbmdzLCByZXEtPnUucG9s bC5pZCk7CisJaWYgKG1hcHBhc3MgPT0gTlVMTCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKgor CSAqIExpbWl0YXRpb24gb2YgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb246IG9ubHkgc3VwcG9y dCBvbmUKKwkgKiBjb25jdXJyZW50IGFjY2VwdCBvciBwb2xsIGNhbGwgb24gb25lIHNvY2tldC4K KwkgKi8KKwlzcGluX2xvY2tfaXJxc2F2ZSgmbWFwcGFzcy0+Y29weV9sb2NrLCBmbGFncyk7CisJ aWYgKG1hcHBhc3MtPnJlcWNvcHkuY21kICE9IDApIHsKKwkJcmV0ID0gLUVJTlRSOworCQlnb3Rv IG91dDsKKwl9CisKKwltYXBwYXNzLT5yZXFjb3B5ID0gKnJlcTsKKwlpY3NrID0gaW5ldF9jc2so bWFwcGFzcy0+c29jay0+c2spOworCXF1ZXVlID0gJmljc2stPmljc2tfYWNjZXB0X3F1ZXVlOwor CXNwaW5fbG9jaygmcXVldWUtPnJza3FfbG9jayk7CisJZGF0YSA9IHF1ZXVlLT5yc2txX2FjY2Vw dF9oZWFkICE9IE5VTEw7CisJc3Bpbl91bmxvY2soJnF1ZXVlLT5yc2txX2xvY2spOworCWlmIChk YXRhKSB7CisJCW1hcHBhc3MtPnJlcWNvcHkuY21kID0gMDsKKwkJcmV0ID0gMDsKKwkJZ290byBv dXQ7CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1hcHBhc3MtPmNvcHlfbG9jaywgZmxh Z3MpOworCisJLyogVGVsbCB0aGUgY2FsbGVyIHdlIGRvbid0IG5lZWQgdG8gc2VuZCBiYWNrIGEg bm90aWZpY2F0aW9uIHlldCAqLworCXJldHVybiAtMTsKKworb3V0OgorCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJm1hcHBhc3MtPmNvcHlfbG9jaywgZmxhZ3MpOworCisJcnNwID0gUklOR19HRVRf UkVTUE9OU0UoJmZlZGF0YS0+cmluZywgZmVkYXRhLT5yaW5nLnJzcF9wcm9kX3B2dCsrKTsKKwly c3AtPnJlcV9pZCA9IHJlcS0+cmVxX2lkOworCXJzcC0+Y21kID0gcmVxLT5jbWQ7CisJcnNwLT51 LnBvbGwuaWQgPSByZXEtPnUucG9sbC5pZDsKKwlyc3AtPnJldCA9IHJldDsKIAlyZXR1cm4gMDsK IH0KIAotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK