From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v6 12/18] xen/pvcalls: implement poll command Date: Mon, 3 Jul 2017 14:08:33 -0700 Message-ID: <1499116119-15638-12-git-send-email-sstabellini@kernel.org> References: <1499116119-15638-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: <1499116119-15638-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 L3B2Y2FsbHMtYmFjay5jCmluZGV4IDc1YjdiOWE5Li5kYmE3YmJmIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3hlbi9wdmNhbGxzLWJhY2suYworKysgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2suYwpA QCAtMzUwLDExICszNTAsMzMgQEAgc3RhdGljIHZvaWQgX19wdmNhbGxzX2JhY2tfYWNjZXB0KHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHN0YXRpYyB2b2lkIHB2Y2FsbHNfcGFzc19za19kYXRh X3JlYWR5KHN0cnVjdCBzb2NrICpzb2NrKQogewogCXN0cnVjdCBzb2NrcGFzc19tYXBwaW5nICpt YXBwYXNzID0gc29jay0+c2tfdXNlcl9kYXRhOworCXN0cnVjdCBwdmNhbGxzX2ZlZGF0YSAqZmVk YXRhOworCXN0cnVjdCB4ZW5fcHZjYWxsc19yZXNwb25zZSAqcnNwOworCXVuc2lnbmVkIGxvbmcg ZmxhZ3M7CisJaW50IG5vdGlmeTsKIAogCWlmIChtYXBwYXNzID09IE5VTEwpCiAJCXJldHVybjsK IAotCXF1ZXVlX3dvcmsobWFwcGFzcy0+d3EsICZtYXBwYXNzLT5yZWdpc3Rlcl93b3JrKTsKKwlm ZWRhdGEgPSBtYXBwYXNzLT5mZWRhdGE7CisJc3Bpbl9sb2NrX2lycXNhdmUoJm1hcHBhc3MtPmNv cHlfbG9jaywgZmxhZ3MpOworCWlmIChtYXBwYXNzLT5yZXFjb3B5LmNtZCA9PSBQVkNBTExTX1BP TEwpIHsKKwkJcnNwID0gUklOR19HRVRfUkVTUE9OU0UoJmZlZGF0YS0+cmluZywgZmVkYXRhLT5y aW5nLnJzcF9wcm9kX3B2dCsrKTsKKwkJcnNwLT5yZXFfaWQgPSBtYXBwYXNzLT5yZXFjb3B5LnJl cV9pZDsKKwkJcnNwLT51LnBvbGwuaWQgPSBtYXBwYXNzLT5yZXFjb3B5LnUucG9sbC5pZDsKKwkJ cnNwLT5jbWQgPSBtYXBwYXNzLT5yZXFjb3B5LmNtZDsKKwkJcnNwLT5yZXQgPSAwOworCisJCW1h cHBhc3MtPnJlcWNvcHkuY21kID0gMDsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWFwcGFz cy0+Y29weV9sb2NrLCBmbGFncyk7CisKKwkJUklOR19QVVNIX1JFU1BPTlNFU19BTkRfQ0hFQ0tf Tk9USUZZKCZmZWRhdGEtPnJpbmcsIG5vdGlmeSk7CisJCWlmIChub3RpZnkpCisJCQlub3RpZnlf cmVtb3RlX3ZpYV9pcnEobWFwcGFzcy0+ZmVkYXRhLT5pcnEpOworCX0gZWxzZSB7CisJCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJm1hcHBhc3MtPmNvcHlfbG9jaywgZmxhZ3MpOworCQlxdWV1ZV93 b3JrKG1hcHBhc3MtPndxLCAmbWFwcGFzcy0+cmVnaXN0ZXJfd29yayk7CisJfQogfQogCiBzdGF0 aWMgaW50IHB2Y2FsbHNfYmFja19iaW5kKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCkBAIC01 MDUsNiArNTI3LDU1IEBAIHN0YXRpYyBpbnQgcHZjYWxsc19iYWNrX2FjY2VwdChzdHJ1Y3QgeGVu YnVzX2RldmljZSAqZGV2LAogc3RhdGljIGludCBwdmNhbGxzX2JhY2tfcG9sbChzdHJ1Y3QgeGVu YnVzX2RldmljZSAqZGV2LAogCQkJICAgICBzdHJ1Y3QgeGVuX3B2Y2FsbHNfcmVxdWVzdCAqcmVx KQogeworCXN0cnVjdCBwdmNhbGxzX2ZlZGF0YSAqZmVkYXRhOworCXN0cnVjdCBzb2NrcGFzc19t YXBwaW5nICptYXBwYXNzOworCXN0cnVjdCB4ZW5fcHZjYWxsc19yZXNwb25zZSAqcnNwOworCXN0 cnVjdCBpbmV0X2Nvbm5lY3Rpb25fc29jayAqaWNzazsKKwlzdHJ1Y3QgcmVxdWVzdF9zb2NrX3F1 ZXVlICpxdWV1ZTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXQ7CisJYm9vbCBkYXRh OworCisJZmVkYXRhID0gZGV2X2dldF9kcnZkYXRhKCZkZXYtPmRldik7CisKKwlkb3duKCZmZWRh dGEtPnNvY2tldF9sb2NrKTsKKwltYXBwYXNzID0gcmFkaXhfdHJlZV9sb29rdXAoJmZlZGF0YS0+ c29ja2V0cGFzc19tYXBwaW5ncywgcmVxLT51LnBvbGwuaWQpOworCXVwKCZmZWRhdGEtPnNvY2tl dF9sb2NrKTsKKwlpZiAobWFwcGFzcyA9PSBOVUxMKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8q CisJICogTGltaXRhdGlvbiBvZiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbjogb25seSBzdXBw b3J0IG9uZQorCSAqIGNvbmN1cnJlbnQgYWNjZXB0IG9yIHBvbGwgY2FsbCBvbiBvbmUgc29ja2V0 LgorCSAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZtYXBwYXNzLT5jb3B5X2xvY2ssIGZsYWdzKTsK KwlpZiAobWFwcGFzcy0+cmVxY29weS5jbWQgIT0gMCkgeworCQlyZXQgPSAtRUlOVFI7CisJCWdv dG8gb3V0OworCX0KKworCW1hcHBhc3MtPnJlcWNvcHkgPSAqcmVxOworCWljc2sgPSBpbmV0X2Nz ayhtYXBwYXNzLT5zb2NrLT5zayk7CisJcXVldWUgPSAmaWNzay0+aWNza19hY2NlcHRfcXVldWU7 CisJZGF0YSA9IHF1ZXVlLT5yc2txX2FjY2VwdF9oZWFkICE9IE5VTEw7CisJaWYgKGRhdGEpIHsK KwkJbWFwcGFzcy0+cmVxY29weS5jbWQgPSAwOworCQlyZXQgPSAwOworCQlnb3RvIG91dDsKKwl9 CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWFwcGFzcy0+Y29weV9sb2NrLCBmbGFncyk7CisK KwkvKiBUZWxsIHRoZSBjYWxsZXIgd2UgZG9uJ3QgbmVlZCB0byBzZW5kIGJhY2sgYSBub3RpZmlj YXRpb24geWV0ICovCisJcmV0dXJuIC0xOworCitvdXQ6CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmbWFwcGFzcy0+Y29weV9sb2NrLCBmbGFncyk7CisKKwlyc3AgPSBSSU5HX0dFVF9SRVNQT05T RSgmZmVkYXRhLT5yaW5nLCBmZWRhdGEtPnJpbmcucnNwX3Byb2RfcHZ0KyspOworCXJzcC0+cmVx X2lkID0gcmVxLT5yZXFfaWQ7CisJcnNwLT5jbWQgPSByZXEtPmNtZDsKKwlyc3AtPnUucG9sbC5p ZCA9IHJlcS0+dS5wb2xsLmlkOworCXJzcC0+cmV0ID0gcmV0OwogCXJldHVybiAwOwogfQogCi0t IAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=