From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v3 05/18] xen/pvcalls: connect to a frontend Date: Fri, 2 Jun 2017 12:31:42 -0700 Message-ID: <1496431915-20774-5-git-send-email-sstabellini@kernel.org> References: <1496431915-20774-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: <1496431915-20774-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 SW50cm9kdWNlIGEgcGVyLWZyb250ZW5kIGRhdGEgc3RydWN0dXJlIG5hbWVkIHB2Y2FsbHNfZmVk YXRhLiBJdApjb250YWlucyBwb2ludGVycyB0byB0aGUgY29tbWFuZCByaW5nLCBpdHMgZXZlbnQg Y2hhbm5lbCwgYSBsaXN0IG9mCmFjdGl2ZSBzb2NrZXRzIGFuZCBhIHRyZWUgb2YgcGFzc2l2ZSBz b2NrZXRzIChwYXNzaW5nIHNvY2tldHMgbmVlZCB0byBiZQpsb29rZWQgdXAgZnJvbSB0aGUgaWQg b24gbGlzdGVuLCBhY2NlcHQgYW5kIHBvbGwgY29tbWFuZHMsIHdoaWxlIGFjdGl2ZQpzb2NrZXRz IG9ubHkgb24gcmVsZWFzZSkuCgpJdCBhbHNvIGhhcyBhbiB1bmJvdW5kIHdvcmtxdWV1ZSB0byBz Y2hlZHVsZSB0aGUgd29yayBvZiBwYXJzaW5nIGFuZApleGVjdXRpbmcgY29tbWFuZHMgb24gdGhl IGNvbW1hbmQgcmluZy4gc29ja2V0X2xvY2sgcHJvdGVjdHMgdGhlIHR3bwpsaXN0cy4gSW4gcHZj YWxsc19iYWNrX2dsb2JhbCwga2VlcCBhIGxpc3Qgb2YgY29ubmVjdGVkIGZyb250ZW5kcy4KClNp Z25lZC1vZmYtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFub0BhcG9yZXRvLmNvbT4KQ0M6 IGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tCkNDOiBqZ3Jvc3NAc3VzZS5jb20KLS0tCiBkcml2 ZXJzL3hlbi9wdmNhbGxzLWJhY2suYyB8IDkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA5MiBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy94ZW4vcHZjYWxscy1iYWNrLmMgYi9kcml2ZXJzL3hlbi9wdmNhbGxz LWJhY2suYwppbmRleCA3YmNlNzUwLi5iZmVhMjVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9w dmNhbGxzLWJhY2suYworKysgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2suYwpAQCAtMzMsOSAr MzMsMTAxIEBAIHN0cnVjdCBwdmNhbGxzX2JhY2tfZ2xvYmFsIHsKIAlzdHJ1Y3Qgc2VtYXBob3Jl IGZyb250ZW5kc19sb2NrOwogfSBwdmNhbGxzX2JhY2tfZ2xvYmFsOwogCisvKgorICogUGVyLWZy b250ZW5kIGRhdGEgc3RydWN0dXJlLiBJdCBjb250YWlucyBwb2ludGVycyB0byB0aGUgY29tbWFu ZAorICogcmluZywgaXRzIGV2ZW50IGNoYW5uZWwsIGEgbGlzdCBvZiBhY3RpdmUgc29ja2V0cyBh bmQgYSB0cmVlIG9mCisgKiBwYXNzaXZlIHNvY2tldHMuCisgKi8KK3N0cnVjdCBwdmNhbGxzX2Zl ZGF0YSB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OworCXN0cnVjdCB4ZW5idXNfZGV2aWNlICpk ZXY7CisJc3RydWN0IHhlbl9wdmNhbGxzX3NyaW5nICpzcmluZzsKKwlzdHJ1Y3QgeGVuX3B2Y2Fs bHNfYmFja19yaW5nIHJpbmc7CisJaW50IGlycTsKKwlzdHJ1Y3QgbGlzdF9oZWFkIHNvY2tldF9t YXBwaW5nczsKKwlzdHJ1Y3QgcmFkaXhfdHJlZV9yb290IHNvY2tldHBhc3NfbWFwcGluZ3M7CisJ c3RydWN0IHNlbWFwaG9yZSBzb2NrZXRfbG9jazsKKwlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAq d3E7CisJc3RydWN0IHdvcmtfc3RydWN0IHJlZ2lzdGVyX3dvcms7Cit9OworCitzdGF0aWMgdm9p ZCBwdmNhbGxzX2JhY2tfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7Cit9CisKK3N0 YXRpYyBpcnFyZXR1cm5fdCBwdmNhbGxzX2JhY2tfZXZlbnQoaW50IGlycSwgdm9pZCAqZGV2X2lk KQoreworCXJldHVybiBJUlFfSEFORExFRDsKK30KKwogc3RhdGljIGludCBiYWNrZW5kX2Nvbm5l Y3Qoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldikKIHsKKwlpbnQgZXJyLCBldnRjaG47CisJZ3Jh bnRfcmVmX3QgcmluZ19yZWY7CisJc3RydWN0IHB2Y2FsbHNfZmVkYXRhICpwcml2ID0gTlVMTDsK KworCXByaXYgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcHZjYWxsc19mZWRhdGEpLCBHRlBfS0VS TkVMKTsKKwlpZiAoIXByaXYpCisJCXJldHVybiAtRU5PTUVNOworCisJZXJyID0geGVuYnVzX3Nj YW5mKFhCVF9OSUwsIGRldi0+b3RoZXJlbmQsICJwb3J0IiwgIiV1IiwKKwkJCSAgICZldnRjaG4p OworCWlmIChlcnIgIT0gMSkgeworCQllcnIgPSAtRUlOVkFMOworCQl4ZW5idXNfZGV2X2ZhdGFs KGRldiwgZXJyLCAicmVhZGluZyAlcy9ldmVudC1jaGFubmVsIiwKKwkJCQkgZGV2LT5vdGhlcmVu ZCk7CisJCWdvdG8gZXJyb3I7CisJfQorCisJZXJyID0geGVuYnVzX3NjYW5mKFhCVF9OSUwsIGRl di0+b3RoZXJlbmQsICJyaW5nLXJlZiIsICIldSIsICZyaW5nX3JlZik7CisJaWYgKGVyciAhPSAx KSB7CisJCWVyciA9IC1FSU5WQUw7CisJCXhlbmJ1c19kZXZfZmF0YWwoZGV2LCBlcnIsICJyZWFk aW5nICVzL3JpbmctcmVmIiwKKwkJCQkgZGV2LT5vdGhlcmVuZCk7CisJCWdvdG8gZXJyb3I7CisJ fQorCisJZXJyID0gYmluZF9pbnRlcmRvbWFpbl9ldnRjaG5fdG9faXJxaGFuZGxlcihkZXYtPm90 aGVyZW5kX2lkLCBldnRjaG4sCisJCQkJCQkgICAgcHZjYWxsc19iYWNrX2V2ZW50LCAwLAorCQkJ CQkJICAgICJwdmNhbGxzLWJhY2tlbmQiLCBkZXYpOworCWlmIChlcnIgPCAwKQorCQlnb3RvIGVy cm9yOworCXByaXYtPmlycSA9IGVycjsKKworCXByaXYtPndxID0gYWxsb2Nfd29ya3F1ZXVlKCJw dmNhbGxzX2JhY2tfd3EiLCBXUV9VTkJPVU5ELCAxKTsKKwlpZiAoIXByaXYtPndxKSB7CisJCWVy ciA9IC1FTk9NRU07CisJCWdvdG8gZXJyb3I7CisJfQorCisJZXJyID0geGVuYnVzX21hcF9yaW5n X3ZhbGxvYyhkZXYsICZyaW5nX3JlZiwgMSwgKHZvaWQqKikmcHJpdi0+c3JpbmcpOworCWlmIChl cnIgPCAwKQorCQlnb3RvIGVycm9yOworCisJQkFDS19SSU5HX0lOSVQoJnByaXYtPnJpbmcsIHBy aXYtPnNyaW5nLCBYRU5fUEFHRV9TSVpFICogMSk7CisJcHJpdi0+ZGV2ID0gZGV2OworCisJSU5J VF9XT1JLKCZwcml2LT5yZWdpc3Rlcl93b3JrLCBwdmNhbGxzX2JhY2tfd29yayk7CisJSU5JVF9M SVNUX0hFQUQoJnByaXYtPnNvY2tldF9tYXBwaW5ncyk7CisJSU5JVF9SQURJWF9UUkVFKCZwcml2 LT5zb2NrZXRwYXNzX21hcHBpbmdzLCBHRlBfS0VSTkVMKTsKKwlzZW1hX2luaXQoJnByaXYtPnNv Y2tldF9sb2NrLCAxKTsKKwlkZXZfc2V0X2RydmRhdGEoJmRldi0+ZGV2LCBwcml2KTsKKworCWRv d24oJnB2Y2FsbHNfYmFja19nbG9iYWwuZnJvbnRlbmRzX2xvY2spOworCWxpc3RfYWRkX3RhaWwo JnByaXYtPmxpc3QsICZwdmNhbGxzX2JhY2tfZ2xvYmFsLmZyb250ZW5kcyk7CisJdXAoJnB2Y2Fs bHNfYmFja19nbG9iYWwuZnJvbnRlbmRzX2xvY2spOworCXF1ZXVlX3dvcmsocHJpdi0+d3EsICZw cml2LT5yZWdpc3Rlcl93b3JrKTsKKwogCXJldHVybiAwOworCisgZXJyb3I6CisJaWYgKHByaXYt PnNyaW5nICE9IE5VTEwpCisJCXhlbmJ1c191bm1hcF9yaW5nX3ZmcmVlKGRldiwgcHJpdi0+c3Jp bmcpOworCWlmIChwcml2LT53cSkKKwkJZGVzdHJveV93b3JrcXVldWUocHJpdi0+d3EpOworCXVu YmluZF9mcm9tX2lycWhhbmRsZXIocHJpdi0+aXJxLCBkZXYpOworCWtmcmVlKHByaXYpOworCXJl dHVybiBlcnI7CiB9CiAKIHN0YXRpYyBpbnQgYmFja2VuZF9kaXNjb25uZWN0KHN0cnVjdCB4ZW5i dXNfZGV2aWNlICpkZXYpCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=