From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v7 12/18] xen/pvcalls: implement poll command Date: Wed, 5 Jul 2017 14:50:52 -0700 Message-ID: <1499291458-30231-12-git-send-email-sstabellini@kernel.org> References: <1499291458-30231-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: <1499291458-30231-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 Zi1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vQGFwb3JldG8uY29tPgpSZXZpZXdlZC1i eTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgpDQzogYm9yaXMub3N0cm92c2t5QG9y YWNsZS5jb20KQ0M6IGpncm9zc0BzdXNlLmNvbQotLS0KIGRyaXZlcnMveGVuL3B2Y2FsbHMtYmFj ay5jIHwgNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQog MSBmaWxlIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2suYyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtYmFj ay5jCmluZGV4IGYwZmRjZDQuLmQ4NDc2ZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3B2Y2Fs bHMtYmFjay5jCisrKyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtYmFjay5jCkBAIC0zNTUsMTEgKzM1 NSwzMyBAQCBzdGF0aWMgdm9pZCBfX3B2Y2FsbHNfYmFja19hY2NlcHQoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQogc3RhdGljIHZvaWQgcHZjYWxsc19wYXNzX3NrX2RhdGFfcmVhZHkoc3RydWN0 IHNvY2sgKnNvY2spCiB7CiAJc3RydWN0IHNvY2twYXNzX21hcHBpbmcgKm1hcHBhc3MgPSBzb2Nr LT5za191c2VyX2RhdGE7CisJc3RydWN0IHB2Y2FsbHNfZmVkYXRhICpmZWRhdGE7CisJc3RydWN0 IHhlbl9wdmNhbGxzX3Jlc3BvbnNlICpyc3A7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQg bm90aWZ5OwogCiAJaWYgKG1hcHBhc3MgPT0gTlVMTCkKIAkJcmV0dXJuOwogCi0JcXVldWVfd29y ayhtYXBwYXNzLT53cSwgJm1hcHBhc3MtPnJlZ2lzdGVyX3dvcmspOworCWZlZGF0YSA9IG1hcHBh c3MtPmZlZGF0YTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmbWFwcGFzcy0+Y29weV9sb2NrLCBmbGFn cyk7CisJaWYgKG1hcHBhc3MtPnJlcWNvcHkuY21kID09IFBWQ0FMTFNfUE9MTCkgeworCQlyc3Ag PSBSSU5HX0dFVF9SRVNQT05TRSgmZmVkYXRhLT5yaW5nLCBmZWRhdGEtPnJpbmcucnNwX3Byb2Rf cHZ0KyspOworCQlyc3AtPnJlcV9pZCA9IG1hcHBhc3MtPnJlcWNvcHkucmVxX2lkOworCQlyc3At PnUucG9sbC5pZCA9IG1hcHBhc3MtPnJlcWNvcHkudS5wb2xsLmlkOworCQlyc3AtPmNtZCA9IG1h cHBhc3MtPnJlcWNvcHkuY21kOworCQlyc3AtPnJldCA9IDA7CisKKwkJbWFwcGFzcy0+cmVxY29w eS5jbWQgPSAwOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtYXBwYXNzLT5jb3B5X2xvY2ss IGZsYWdzKTsKKworCQlSSU5HX1BVU0hfUkVTUE9OU0VTX0FORF9DSEVDS19OT1RJRlkoJmZlZGF0 YS0+cmluZywgbm90aWZ5KTsKKwkJaWYgKG5vdGlmeSkKKwkJCW5vdGlmeV9yZW1vdGVfdmlhX2ly cShtYXBwYXNzLT5mZWRhdGEtPmlycSk7CisJfSBlbHNlIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmbWFwcGFzcy0+Y29weV9sb2NrLCBmbGFncyk7CisJCXF1ZXVlX3dvcmsobWFwcGFzcy0+ d3EsICZtYXBwYXNzLT5yZWdpc3Rlcl93b3JrKTsKKwl9CiB9CiAKIHN0YXRpYyBpbnQgcHZjYWxs c19iYWNrX2JpbmQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKQEAgLTUwMiw2ICs1MjQsNTUg QEAgc3RhdGljIGludCBwdmNhbGxzX2JhY2tfYWNjZXB0KHN0cnVjdCB4ZW5idXNfZGV2aWNlICpk ZXYsCiBzdGF0aWMgaW50IHB2Y2FsbHNfYmFja19wb2xsKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpk ZXYsCiAJCQkgICAgIHN0cnVjdCB4ZW5fcHZjYWxsc19yZXF1ZXN0ICpyZXEpCiB7CisJc3RydWN0 IHB2Y2FsbHNfZmVkYXRhICpmZWRhdGE7CisJc3RydWN0IHNvY2twYXNzX21hcHBpbmcgKm1hcHBh c3M7CisJc3RydWN0IHhlbl9wdmNhbGxzX3Jlc3BvbnNlICpyc3A7CisJc3RydWN0IGluZXRfY29u bmVjdGlvbl9zb2NrICppY3NrOworCXN0cnVjdCByZXF1ZXN0X3NvY2tfcXVldWUgKnF1ZXVlOwor CXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJldDsKKwlib29sIGRhdGE7CisKKwlmZWRhdGEg PSBkZXZfZ2V0X2RydmRhdGEoJmRldi0+ZGV2KTsKKworCWRvd24oJmZlZGF0YS0+c29ja2V0X2xv Y2spOworCW1hcHBhc3MgPSByYWRpeF90cmVlX2xvb2t1cCgmZmVkYXRhLT5zb2NrZXRwYXNzX21h cHBpbmdzLCByZXEtPnUucG9sbC5pZCk7CisJdXAoJmZlZGF0YS0+c29ja2V0X2xvY2spOworCWlm IChtYXBwYXNzID09IE5VTEwpCisJCXJldHVybiAtRUlOVkFMOworCisJLyoKKwkgKiBMaW1pdGF0 aW9uIG9mIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uOiBvbmx5IHN1cHBvcnQgb25lCisJICog Y29uY3VycmVudCBhY2NlcHQgb3IgcG9sbCBjYWxsIG9uIG9uZSBzb2NrZXQuCisJICovCisJc3Bp bl9sb2NrX2lycXNhdmUoJm1hcHBhc3MtPmNvcHlfbG9jaywgZmxhZ3MpOworCWlmIChtYXBwYXNz LT5yZXFjb3B5LmNtZCAhPSAwKSB7CisJCXJldCA9IC1FSU5UUjsKKwkJZ290byBvdXQ7CisJfQor CisJbWFwcGFzcy0+cmVxY29weSA9ICpyZXE7CisJaWNzayA9IGluZXRfY3NrKG1hcHBhc3MtPnNv Y2stPnNrKTsKKwlxdWV1ZSA9ICZpY3NrLT5pY3NrX2FjY2VwdF9xdWV1ZTsKKwlkYXRhID0gcXVl dWUtPnJza3FfYWNjZXB0X2hlYWQgIT0gTlVMTDsKKwlpZiAoZGF0YSkgeworCQltYXBwYXNzLT5y ZXFjb3B5LmNtZCA9IDA7CisJCXJldCA9IDA7CisJCWdvdG8gb3V0OworCX0KKwlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZtYXBwYXNzLT5jb3B5X2xvY2ssIGZsYWdzKTsKKworCS8qIFRlbGwgdGhl IGNhbGxlciB3ZSBkb24ndCBuZWVkIHRvIHNlbmQgYmFjayBhIG5vdGlmaWNhdGlvbiB5ZXQgKi8K KwlyZXR1cm4gLTE7CisKK291dDoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtYXBwYXNzLT5j b3B5X2xvY2ssIGZsYWdzKTsKKworCXJzcCA9IFJJTkdfR0VUX1JFU1BPTlNFKCZmZWRhdGEtPnJp bmcsIGZlZGF0YS0+cmluZy5yc3BfcHJvZF9wdnQrKyk7CisJcnNwLT5yZXFfaWQgPSByZXEtPnJl cV9pZDsKKwlyc3AtPmNtZCA9IHJlcS0+Y21kOworCXJzcC0+dS5wb2xsLmlkID0gcmVxLT51LnBv bGwuaWQ7CisJcnNwLT5yZXQgPSByZXQ7CiAJcmV0dXJuIDA7CiB9CiAKLS0gCjEuOS4xCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==