From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v3 03/12] fuzz/x86_emulate: Implement input_read() and input_avail() Date: Tue, 10 Oct 2017 17:20:02 +0100 Message-ID: <20171010162011.9629-3-george.dunlap@citrix.com> References: <20171010162011.9629-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e22ZI-00033F-VK for xen-devel@lists.xenproject.org; Tue, 10 Oct 2017 22:00:05 +0000 In-Reply-To: <20171010162011.9629-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 U2lnbmVkLW9mZi1ieTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgot LS0KdjM6CiAtIHMvaW5wdXRfYXZhaWxhYmxlL2lucHV0X2F2YWlsLzsKIC0gQ29uc3RpZnkgYXJn dW1lbnQgdG8gaW5wdXRfYXZhaWwKIC0gRml4IG9mZi1ieS1vbmUgZXJyb3IgaW4gaW5wdXRfYXZh aWwKIC0gUmV0dXJuIGZhbHNlIC8gdHJ1ZSByYXRoZXIgdGhhbiAwIC8gMSBpbiBpbnB1dF9yZWFk CnYyOgotIFVzZSBsZXNzIGRyZWFkLWZ1bCBuYW1lcwotIFJldHVybiBib29sIHJhdGhlciB0aGFu IGludAoKQ0M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBjaXRyaXguY29tPgpDQzogV2VpIExp dSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ0M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIz QGNpdHJpeC5jb20+CkNDOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQogdG9v bHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMgfCAzMSArKysrKysr KysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVs YXRvci9mdXp6LWVtdWwuYyBiL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1 enotZW11bC5jCmluZGV4IDk5OWY0MTc3MTYuLjVmYjg1ODY5NTUgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCisrKyBiL3Rvb2xzL2Z1 enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCkBAIC01Miw2ICs1MiwyMiBA QCBzdHJ1Y3QgZnV6el9zdGF0ZQogICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9vcHMgb3BzOwogfTsK IAorc3RhdGljIGlubGluZSBib29sIGlucHV0X2F2YWlsKGNvbnN0IHN0cnVjdCBmdXp6X3N0YXRl ICpzLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gcy0+ZGF0YV9pbmRleCArIHNpemUgPD0g cy0+ZGF0YV9udW07Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpbnB1dF9yZWFkKHN0cnVjdCBm dXp6X3N0YXRlICpzLCB2b2lkICpkc3QsIHNpemVfdCBzaXplKQoreworICAgIGlmICggIWlucHV0 X2F2YWlsKHMsIHNpemUpICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbWVtY3B5KGRz dCwgJnMtPmNvcnB1cy0+ZGF0YVtzLT5kYXRhX2luZGV4XSwgc2l6ZSk7CisgICAgcy0+ZGF0YV9p bmRleCArPSBzaXplOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBjb25zdCBjaGFy KiBjb25zdCB4ODZlbXVsX3JldHVybl9zdHJpbmdbXSA9IHsKICAgICBbWDg2RU1VTF9PS0FZXSA9 ICJYODZFTVVMX09LQVkiLAogICAgIFtYODZFTVVMX1VOSEFORExFQUJMRV0gPSAiWDg2RU1VTF9V TkhBTkRMRUFCTEUiLApAQCAtNjgsMTAgKzg0LDEwIEBAIHN0YXRpYyBpbnQgbWF5YmVfZmFpbChz dHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCwKICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICp3aHksIGJvb2wgZXhjZXB0aW9uKQogewogICAgIHN0cnVjdCBmdXp6X3N0YXRlICpz ID0gY3R4dC0+ZGF0YTsKLSAgICBjb25zdCBzdHJ1Y3QgZnV6el9jb3JwdXMgKmMgPSBzLT5jb3Jw dXM7CisgICAgdW5zaWduZWQgY2hhciBjOwogICAgIGludCByYzsKIAotICAgIGlmICggcy0+ZGF0 YV9pbmRleCA+PSBzLT5kYXRhX251bSApCisgICAgaWYgKCAhaW5wdXRfcmVhZChzLCAmYywgc2l6 ZW9mKGMpKSApCiAgICAgICAgIHJjID0gWDg2RU1VTF9FWENFUFRJT047CiAgICAgZWxzZQogICAg IHsKQEAgLTgwLDEzICs5NiwxMiBAQCBzdGF0aWMgaW50IG1heWJlX2ZhaWwoc3RydWN0IHg4Nl9l bXVsYXRlX2N0eHQgKmN0eHQsCiAgICAgICAgICAqIDI1JSB1bmhhbmRsYWJsZQogICAgICAgICAg KiAyNSUgZXhjZXB0aW9uCiAgICAgICAgICAqLwotICAgICAgICBpZiAoIGMtPmRhdGFbcy0+ZGF0 YV9pbmRleF0gPiAweGMwICkKKyAgICAgICAgaWYgKCBjID4gMHhjMCApCiAgICAgICAgICAgICBy YyA9IFg4NkVNVUxfRVhDRVBUSU9OOwotICAgICAgICBlbHNlIGlmICggYy0+ZGF0YVtzLT5kYXRh X2luZGV4XSA+IDB4ODAgKQorICAgICAgICBlbHNlIGlmICggYyA+IDB4ODAgKQogICAgICAgICAg ICAgcmMgPSBYODZFTVVMX1VOSEFORExFQUJMRTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg cmMgPSBYODZFTVVMX09LQVk7Ci0gICAgICAgIHMtPmRhdGFfaW5kZXgrKzsKICAgICB9CiAKICAg ICBpZiAoIHJjID09IFg4NkVNVUxfRVhDRVBUSU9OICYmICFleGNlcHRpb24gKQpAQCAtMTA2LDEx ICsxMjEsMTAgQEAgc3RhdGljIGludCBkYXRhX3JlYWQoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQg KmN0eHQsCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp3aHksIHZvaWQgKmRzdCwg dW5zaWduZWQgaW50IGJ5dGVzKQogewogICAgIHN0cnVjdCBmdXp6X3N0YXRlICpzID0gY3R4dC0+ ZGF0YTsKLSAgICBjb25zdCBzdHJ1Y3QgZnV6el9jb3JwdXMgKmMgPSBzLT5jb3JwdXM7CiAgICAg dW5zaWduZWQgaW50IGk7CiAgICAgaW50IHJjOwogCi0gICAgaWYgKCBzLT5kYXRhX2luZGV4ICsg Ynl0ZXMgPiBzLT5kYXRhX251bSApCisgICAgaWYgKCAhaW5wdXRfYXZhaWwocywgYnl0ZXMpICkK ICAgICB7CiAgICAgICAgIC8qCiAgICAgICAgICAqIEZha2UgdXAgYSBzZWdtZW50IGxpbWl0IHZp b2xhdGlvbi4gIFN5c3RlbSBzZWdtZW50IGxpbWl0IHZvbGF0aW9ucwpAQCAtMTI4LDggKzE0Miw3 IEBAIHN0YXRpYyBpbnQgZGF0YV9yZWFkKHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0LAog CiAgICAgaWYgKCByYyA9PSBYODZFTVVMX09LQVkgKQogICAgIHsKLSAgICAgICAgbWVtY3B5KGRz dCwgJmMtPmRhdGFbcy0+ZGF0YV9pbmRleF0sIGJ5dGVzKTsKLSAgICAgICAgcy0+ZGF0YV9pbmRl eCArPSBieXRlczsKKyAgICAgICAgaW5wdXRfcmVhZChzLCBkc3QsIGJ5dGVzKTsKIAogICAgICAg ICBwcmludGYoIiVzOiAiLCB3aHkpOwogICAgICAgICBmb3IgKCBpID0gMDsgaSA8IGJ5dGVzOyBp KysgKQotLSAKMi4xNC4yCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==