From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v4 03/12] fuzz/x86_emulate: Implement input_read() and input_avail() Date: Wed, 11 Oct 2017 18:52:34 +0100 Message-ID: <20171011175243.19871-3-george.dunlap@citrix.com> References: <20171011175243.19871-1-george.dunlap@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e2LBd-0000Y7-CU for xen-devel@lists.xenproject.org; Wed, 11 Oct 2017 17:52:53 +0000 In-Reply-To: <20171011175243.19871-1-george.dunlap@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Ian Jackson , Wei Liu , George Dunlap , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org UmF0aGVyIHRoYW4gb3Blbi1jb2RpbmcgdGhlICJyZWFkIiBmcm9tIHRoZSBpbnB1dCBmaWxlLgoK U2lnbmVkLW9mZi1ieTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgpB Y2tlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3 ZWQtYnk6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgotLS0KdjM6CiAt IHMvaW5wdXRfYXZhaWxhYmxlL2lucHV0X2F2YWlsLzsKIC0gQ29uc3RpZnkgYXJndW1lbnQgdG8g aW5wdXRfYXZhaWwKIC0gRml4IG9mZi1ieS1vbmUgZXJyb3IgaW4gaW5wdXRfYXZhaWwKIC0gUmV0 dXJuIGZhbHNlIC8gdHJ1ZSByYXRoZXIgdGhhbiAwIC8gMSBpbiBpbnB1dF9yZWFkCnYyOgotIFVz ZSBsZXNzIGRyZWFkLWZ1bCBuYW1lcwotIFJldHVybiBib29sIHJhdGhlciB0aGFuIGludAoKQ0M6 IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBjaXRyaXguY29tPgpDQzogV2VpIExpdSA8d2VpLmxp dTJAY2l0cml4LmNvbT4KQ0M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5j b20+CkNDOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQogdG9vbHMvZnV6ei94 ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMgfCAzMSArKysrKysrKysrKysrKysr KystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6 LWVtdWwuYyBiL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5j CmluZGV4IDk5OWY0MTc3MTYuLjVmYjg1ODY5NTUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2Z1enoveDg2 X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCisrKyBiL3Rvb2xzL2Z1enoveDg2X2lu c3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCkBAIC01Miw2ICs1MiwyMiBAQCBzdHJ1Y3Qg ZnV6el9zdGF0ZQogICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9vcHMgb3BzOwogfTsKIAorc3RhdGlj IGlubGluZSBib29sIGlucHV0X2F2YWlsKGNvbnN0IHN0cnVjdCBmdXp6X3N0YXRlICpzLCBzaXpl X3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gcy0+ZGF0YV9pbmRleCArIHNpemUgPD0gcy0+ZGF0YV9u dW07Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpbnB1dF9yZWFkKHN0cnVjdCBmdXp6X3N0YXRl ICpzLCB2b2lkICpkc3QsIHNpemVfdCBzaXplKQoreworICAgIGlmICggIWlucHV0X2F2YWlsKHMs IHNpemUpICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbWVtY3B5KGRzdCwgJnMtPmNv cnB1cy0+ZGF0YVtzLT5kYXRhX2luZGV4XSwgc2l6ZSk7CisgICAgcy0+ZGF0YV9pbmRleCArPSBz aXplOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCB4 ODZlbXVsX3JldHVybl9zdHJpbmdbXSA9IHsKICAgICBbWDg2RU1VTF9PS0FZXSA9ICJYODZFTVVM X09LQVkiLAogICAgIFtYODZFTVVMX1VOSEFORExFQUJMRV0gPSAiWDg2RU1VTF9VTkhBTkRMRUFC TEUiLApAQCAtNjgsMTAgKzg0LDEwIEBAIHN0YXRpYyBpbnQgbWF5YmVfZmFpbChzdHJ1Y3QgeDg2 X2VtdWxhdGVfY3R4dCAqY3R4dCwKICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp3 aHksIGJvb2wgZXhjZXB0aW9uKQogewogICAgIHN0cnVjdCBmdXp6X3N0YXRlICpzID0gY3R4dC0+ ZGF0YTsKLSAgICBjb25zdCBzdHJ1Y3QgZnV6el9jb3JwdXMgKmMgPSBzLT5jb3JwdXM7CisgICAg dW5zaWduZWQgY2hhciBjOwogICAgIGludCByYzsKIAotICAgIGlmICggcy0+ZGF0YV9pbmRleCA+ PSBzLT5kYXRhX251bSApCisgICAgaWYgKCAhaW5wdXRfcmVhZChzLCAmYywgc2l6ZW9mKGMpKSAp CiAgICAgICAgIHJjID0gWDg2RU1VTF9FWENFUFRJT047CiAgICAgZWxzZQogICAgIHsKQEAgLTgw LDEzICs5NiwxMiBAQCBzdGF0aWMgaW50IG1heWJlX2ZhaWwoc3RydWN0IHg4Nl9lbXVsYXRlX2N0 eHQgKmN0eHQsCiAgICAgICAgICAqIDI1JSB1bmhhbmRsYWJsZQogICAgICAgICAgKiAyNSUgZXhj ZXB0aW9uCiAgICAgICAgICAqLwotICAgICAgICBpZiAoIGMtPmRhdGFbcy0+ZGF0YV9pbmRleF0g PiAweGMwICkKKyAgICAgICAgaWYgKCBjID4gMHhjMCApCiAgICAgICAgICAgICByYyA9IFg4NkVN VUxfRVhDRVBUSU9OOwotICAgICAgICBlbHNlIGlmICggYy0+ZGF0YVtzLT5kYXRhX2luZGV4XSA+ IDB4ODAgKQorICAgICAgICBlbHNlIGlmICggYyA+IDB4ODAgKQogICAgICAgICAgICAgcmMgPSBY ODZFTVVMX1VOSEFORExFQUJMRTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmMgPSBYODZF TVVMX09LQVk7Ci0gICAgICAgIHMtPmRhdGFfaW5kZXgrKzsKICAgICB9CiAKICAgICBpZiAoIHJj ID09IFg4NkVNVUxfRVhDRVBUSU9OICYmICFleGNlcHRpb24gKQpAQCAtMTA2LDExICsxMjEsMTAg QEAgc3RhdGljIGludCBkYXRhX3JlYWQoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQsCiAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp3aHksIHZvaWQgKmRzdCwgdW5zaWduZWQg aW50IGJ5dGVzKQogewogICAgIHN0cnVjdCBmdXp6X3N0YXRlICpzID0gY3R4dC0+ZGF0YTsKLSAg ICBjb25zdCBzdHJ1Y3QgZnV6el9jb3JwdXMgKmMgPSBzLT5jb3JwdXM7CiAgICAgdW5zaWduZWQg aW50IGk7CiAgICAgaW50IHJjOwogCi0gICAgaWYgKCBzLT5kYXRhX2luZGV4ICsgYnl0ZXMgPiBz LT5kYXRhX251bSApCisgICAgaWYgKCAhaW5wdXRfYXZhaWwocywgYnl0ZXMpICkKICAgICB7CiAg ICAgICAgIC8qCiAgICAgICAgICAqIEZha2UgdXAgYSBzZWdtZW50IGxpbWl0IHZpb2xhdGlvbi4g IFN5c3RlbSBzZWdtZW50IGxpbWl0IHZvbGF0aW9ucwpAQCAtMTI4LDggKzE0Miw3IEBAIHN0YXRp YyBpbnQgZGF0YV9yZWFkKHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0LAogCiAgICAgaWYg KCByYyA9PSBYODZFTVVMX09LQVkgKQogICAgIHsKLSAgICAgICAgbWVtY3B5KGRzdCwgJmMtPmRh dGFbcy0+ZGF0YV9pbmRleF0sIGJ5dGVzKTsKLSAgICAgICAgcy0+ZGF0YV9pbmRleCArPSBieXRl czsKKyAgICAgICAgaW5wdXRfcmVhZChzLCBkc3QsIGJ5dGVzKTsKIAogICAgICAgICBwcmludGYo IiVzOiAiLCB3aHkpOwogICAgICAgICBmb3IgKCBpID0gMDsgaSA8IGJ5dGVzOyBpKysgKQotLSAK Mi4xNC4yCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==