From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v2 05/13] fuzz/x86_emulate: Implement input_read() and input_avail() Date: Mon, 25 Sep 2017 15:26:40 +0100 Message-ID: <20170925142648.25959-5-george.dunlap@citrix.com> References: <20170925142648.25959-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 1dwULy-0003q8-1B for xen-devel@lists.xenproject.org; Mon, 25 Sep 2017 14:27:22 +0000 In-Reply-To: <20170925142648.25959-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 LS0KdjI6Ci0gVXNlIGxlc3MgZHJlYWQtZnVsIG5hbWVzCi0gUmV0dXJuIGJvb2wgcmF0aGVyIHRo YW4gaW50CgpDQzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGNpdHJpeC5jb20+CkNDOiBXZWkg TGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDQzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3Bl cjNAY2l0cml4LmNvbT4KQ0M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCiB0 b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuYyB8IDMxICsrKysr KysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCA5 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2Vt dWxhdG9yL2Z1enotZW11bC5jIGIvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3Iv ZnV6ei1lbXVsLmMKaW5kZXggNzYxYjJhZTk2ZS4uOTI2ODRjZjA4OCAxMDA2NDQKLS0tIGEvdG9v bHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMKKysrIGIvdG9vbHMv ZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMKQEAgLTUyLDYgKzUyLDIy IEBAIHN0cnVjdCBmdXp6X3N0YXRlCiAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX29wcyBvcHM7CiB9 OwogCitzdGF0aWMgaW5saW5lIGJvb2wgaW5wdXRfYXZhaWxhYmxlKHN0cnVjdCBmdXp6X3N0YXRl ICpzLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gcy0+ZGF0YV9pbmRleCArIHNpemUgPCBz LT5kYXRhX251bTsKK30KKworc3RhdGljIGlubGluZSBib29sIGlucHV0X3JlYWQoc3RydWN0IGZ1 enpfc3RhdGUgKnMsIHZvaWQgKmRzdCwgc2l6ZV90IHNpemUpCit7CisgICAgaWYgKCAhaW5wdXRf YXZhaWxhYmxlKHMsIHNpemUpICkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBtZW1jcHkoZHN0 LCAmcy0+Y29ycHVzLT5kYXRhW3MtPmRhdGFfaW5kZXhdLCBzaXplKTsKKyAgICBzLT5kYXRhX2lu ZGV4ICs9IHNpemU7CisKKyAgICByZXR1cm4gMTsKK30KKwogY2hhciAqeDg2ZW11bF9yZXR1cm5f c3RyaW5nW10gPSB7CiAgICAgW1g4NkVNVUxfT0tBWV0gPSAiWDg2RU1VTF9PS0FZIiwKICAgICBb WDg2RU1VTF9VTkhBTkRMRUFCTEVdID0gIlg4NkVNVUxfVU5IQU5ETEVBQkxFIiwKQEAgLTY4LDEw ICs4NCwxMCBAQCBzdGF0aWMgaW50IG1heWJlX2ZhaWwoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQg KmN0eHQsCiAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqd2h5LCBib29sIGV4Y2Vw dGlvbikKIHsKICAgICBzdHJ1Y3QgZnV6el9zdGF0ZSAqcyA9IGN0eHQtPmRhdGE7Ci0gICAgY29u c3Qgc3RydWN0IGZ1enpfY29ycHVzICpjID0gcy0+Y29ycHVzOworICAgIHVuc2lnbmVkIGNoYXIg YzsKICAgICBpbnQgcmM7CiAKLSAgICBpZiAoIHMtPmRhdGFfaW5kZXggPj0gcy0+ZGF0YV9udW0g KQorICAgIGlmICggIWlucHV0X3JlYWQocywgJmMsIHNpemVvZihjKSkgKQogICAgICAgICByYyA9 IFg4NkVNVUxfRVhDRVBUSU9OOwogICAgIGVsc2UKICAgICB7CkBAIC04MCwxMyArOTYsMTIgQEAg c3RhdGljIGludCBtYXliZV9mYWlsKHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0LAogICAg ICAgICAgKiAyNSUgdW5oYW5kbGFibGUKICAgICAgICAgICogMjUlIGV4Y2VwdGlvbgogICAgICAg ICAgKi8KLSAgICAgICAgaWYgKCBjLT5kYXRhW3MtPmRhdGFfaW5kZXhdID4gMHhjMCApCisgICAg ICAgIGlmICggYyA+IDB4YzAgKQogICAgICAgICAgICAgcmMgPSBYODZFTVVMX0VYQ0VQVElPTjsK LSAgICAgICAgZWxzZSBpZiAoIGMtPmRhdGFbcy0+ZGF0YV9pbmRleF0gPiAweDgwICkKKyAgICAg ICAgZWxzZSBpZiAoIGMgPiAweDgwICkKICAgICAgICAgICAgIHJjID0gWDg2RU1VTF9VTkhBTkRM RUFCTEU7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJjID0gWDg2RU1VTF9PS0FZOwotICAg ICAgICBzLT5kYXRhX2luZGV4Kys7CiAgICAgfQogCiAgICAgaWYgKCByYyA9PSBYODZFTVVMX0VY Q0VQVElPTiAmJiAhZXhjZXB0aW9uICkKQEAgLTEwNiwxMSArMTIxLDEwIEBAIHN0YXRpYyBpbnQg ZGF0YV9yZWFkKHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0LAogICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqd2h5LCB2b2lkICpkc3QsIHVuc2lnbmVkIGludCBieXRlcykKIHsK ICAgICBzdHJ1Y3QgZnV6el9zdGF0ZSAqcyA9IGN0eHQtPmRhdGE7Ci0gICAgY29uc3Qgc3RydWN0 IGZ1enpfY29ycHVzICpjID0gcy0+Y29ycHVzOwogICAgIHVuc2lnbmVkIGludCBpOwogICAgIGlu dCByYzsKIAotICAgIGlmICggcy0+ZGF0YV9pbmRleCArIGJ5dGVzID4gcy0+ZGF0YV9udW0gKQor ICAgIGlmICggIWlucHV0X2F2YWlsYWJsZShzLCBieXRlcykgKQogICAgIHsKICAgICAgICAgLyoK ICAgICAgICAgICogRmFrZSB1cCBhIHNlZ21lbnQgbGltaXQgdmlvbGF0aW9uLiAgU3lzdGVtIHNl Z21lbnQgbGltaXQgdm9sYXRpb25zCkBAIC0xMjgsOCArMTQyLDcgQEAgc3RhdGljIGludCBkYXRh X3JlYWQoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQsCiAKICAgICBpZiAoIHJjID09IFg4 NkVNVUxfT0tBWSApCiAgICAgewotICAgICAgICBtZW1jcHkoZHN0LCAmYy0+ZGF0YVtzLT5kYXRh X2luZGV4XSwgYnl0ZXMpOwotICAgICAgICBzLT5kYXRhX2luZGV4ICs9IGJ5dGVzOworICAgICAg ICBpbnB1dF9yZWFkKHMsIGRzdCwgYnl0ZXMpOwogCiAgICAgICAgIHByaW50ZigiJXM6ICIsIHdo eSk7CiAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgYnl0ZXM7IGkrKyApCi0tIAoyLjE0LjEKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK