From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v5 3/6] target-arm: kvm - implement software breakpoints Date: Fri, 29 May 2015 16:19:21 +0100 Message-ID: <1432912764-7073-4-git-send-email-alex.bennee@linaro.org> References: <1432912764-7073-1-git-send-email-alex.bennee@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: kvm@vger.kernel.org, marc.zyngier@arm.com, Paolo Bonzini , kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org To: qemu-devel@nongnu.org, peter.maydell@linaro.org, christoffer.dall@linaro.org, zhichao.huang@linaro.org Return-path: In-Reply-To: <1432912764-7073-1-git-send-email-alex.bennee@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu List-Id: kvm.vger.kernel.org VGhlc2UgZG9uJ3QgaW52b2x2ZSBtZXNzaW5nIGFyb3VuZCB3aXRoIGRlYnVnIHJlZ2lzdGVycywg anVzdCBzZXR0aW5nCnRoZSBicmVha3BvaW50IGluc3RydWN0aW9uIGluIG1lbW9yeS4gR0RCIHdp bGwgbm90IHVzZSB0aGlzIG1lY2hhbmlzbSBpZgppdCBjYW4ndCBhY2Nlc3MgdGhlIG1lbW9yeSB0 byB3cml0ZSB0aGUgYnJlYWtwb2ludC4KCkFsbCB0aGUga2VybmVsIGhhcyB0byBkbyBpcyBlbnN1 cmUgdGhlIGh5cGVydmlzb3IgdHJhcHMgdGhlIGJyZWFrcG9pbnQKZXhjZXB0aW9ucyBhbmQgcmV0 dXJucyB0byB1c2Vyc3BhY2UuCgpTaWduZWQtb2ZmLWJ5OiBBbGV4IEJlbm7DqWUgPGFsZXguYmVu bmVlQGxpbmFyby5vcmc+CgotLQp2MgogIC0gaGFuZGxlIGRlYnVnIGV4aXQgd2l0aCBuZXcgaHNy IGV4Y2VwdGlvbiBpbmZvCiAgLSBhZGQgdmVyYm9zaXR5IHRvIFVOSU1QIG1lc3NhZ2UKdjMKICAt IHN5bmMgd2l0aCBrdm1fY3B1X3N5bmNocm9uaXplX3N0YXRlKCkgYmVmb3JlIGNoZWNraW5nIFBD LgogIC0gdXNlIGludGVybmFscy5oIGRlZmluZXMKICAtIHVzZSBlbnYtPnBjCiAgLSB1c2UgcHJv cGVyIGZvcm1hdCB0eXBlcwotLS0KIHRhcmdldC1hcm0va3ZtLmMgfCA4OCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDc2IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rhcmdl dC1hcm0va3ZtLmMgYi90YXJnZXQtYXJtL2t2bS5jCmluZGV4IGZkZDliYTMuLmMzYmFkNmYgMTAw NjQ0Ci0tLSBhL3RhcmdldC1hcm0va3ZtLmMKKysrIGIvdGFyZ2V0LWFybS9rdm0uYwpAQCAtNTEw LDkgKzUxMCw2MCBAQCB2b2lkIGt2bV9hcmNoX3Bvc3RfcnVuKENQVVN0YXRlICpjcywgc3RydWN0 IGt2bV9ydW4gKnJ1bikKIHsKIH0KIAorLyogU2VlIHY4IEFSTSBBUk0gRDcuMi4yNyBFU1JfRUx4 LCBFeGNlcHRpb24gU3luZHJvbWUgUmVnaXN0ZXIKKyAqCisgKiBUbyBtaW5pbWlzZSB0cmFuc2xh dGluZyBiZXR3ZWVuIGtlcm5lbCBhbmQgdXNlci1zcGFjZSB0aGUga2VybmVsCisgKiBBQkkganVz dCBwcm92aWRlcyB1c2VyLXNwYWNlIHdpdGggdGhlIGZ1bGwgZXhjZXB0aW9uIHN5bmRyb21lCisg KiByZWdpc3RlciB2YWx1ZSB0byBiZSBkZWNvZGVkIGluIFFFTVUuCisgKi8KKworc3RhdGljIGlu dCBrdm1faGFuZGxlX2RlYnVnKENQVVN0YXRlICpjcywgc3RydWN0IGt2bV9ydW4gKnJ1bikKK3sK KyAgICBzdHJ1Y3Qga3ZtX2RlYnVnX2V4aXRfYXJjaCAqYXJjaF9pbmZvID0gJnJ1bi0+ZGVidWcu YXJjaDsKKyAgICBpbnQgaHNyX2VjID0gYXJjaF9pbmZvLT5oc3IgPj4gQVJNX0VMX0VDX1NISUZU OworICAgIEFSTUNQVSAqY3B1ID0gQVJNX0NQVShjcyk7CisgICAgQ1BVQVJNU3RhdGUgKmVudiA9 ICZjcHUtPmVudjsKKworICAgIC8qIEVuc3VyZSBQQyBpcyBzeW5jaHJvbmlzZWQgKi8KKyAgICBr dm1fY3B1X3N5bmNocm9uaXplX3N0YXRlKGNzKTsKKworICAgIHN3aXRjaCAoaHNyX2VjKSB7Cisg ICAgY2FzZSBFQ19BQTY0X0JLUFQ6CisgICAgICAgIGlmIChrdm1fZmluZF9zd19icmVha3BvaW50 KGNzLCBlbnYtPnBjKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAg ICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgZXJyb3JfcmVwb3J0KCIlczogdW5o YW5kbGVkIGRlYnVnIGV4aXQgKCUiUFJJeDMyIiwgJSJQUkl4NjQiKVxuIiwKKyAgICAgICAgICAg ICAgICAgICAgIF9fZnVuY19fLCBhcmNoX2luZm8tPmhzciwgZW52LT5wYyk7CisgICAgfQorCisg ICAgLyogSWYgd2UgZG9uJ3QgaGFuZGxlIHRoaXMgaXQgY291bGQgYmUgaXQgcmVhbGx5IGlzIGZv ciB0aGUKKyAgICAgICBndWVzdCB0byBoYW5kbGUgKi8KKyAgICBxZW11X2xvZ19tYXNrKExPR19V TklNUCwKKyAgICAgICAgICAgICAgICAgICIlczogcmUtaW5qZWN0aW5nIGV4Y2VwdGlvbiBub3Qg eWV0IGltcGxlbWVudGVkIgorICAgICAgICAgICAgICAgICAgIiAoMHglIlBSSXgzMiIsICUiUFJJ eDY0IilcbiIsCisgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgaHNyX2VjLCBlbnYtPnBjKTsK KworICAgIHJldHVybiBmYWxzZTsKK30KKwogaW50IGt2bV9hcmNoX2hhbmRsZV9leGl0KENQVVN0 YXRlICpjcywgc3RydWN0IGt2bV9ydW4gKnJ1bikKIHsKLSAgICByZXR1cm4gMDsKKyAgICBpbnQg cmV0ID0gMDsKKworICAgIHN3aXRjaCAocnVuLT5leGl0X3JlYXNvbikgeworICAgIGNhc2UgS1ZN X0VYSVRfREVCVUc6CisgICAgICAgIGlmIChrdm1faGFuZGxlX2RlYnVnKGNzLCBydW4pKSB7Cisg ICAgICAgICAgICByZXQgPSBFWENQX0RFQlVHOworICAgICAgICB9IC8qIG90aGVyd2lzZSByZXR1 cm4gdG8gZ3Vlc3QgKi8KKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcWVt dV9sb2dfbWFzayhMT0dfVU5JTVAsICIlczogdW4taGFuZGxlZCBleGl0IHJlYXNvbiAlZFxuIiwK KyAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgcnVuLT5leGl0X3JlYXNvbik7CisgICAg ICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gcmV0OwogfQogCiBib29sIGt2bV9hcmNoX3N0 b3Bfb25fZW11bGF0aW9uX2Vycm9yKENQVVN0YXRlICpjcykKQEAgLTUzNywxNCArNTg4LDMzIEBA IGludCBrdm1fYXJjaF9vbl9zaWdidXMoaW50IGNvZGUsIHZvaWQgKmFkZHIpCiAKIHZvaWQga3Zt X2FyY2hfdXBkYXRlX2d1ZXN0X2RlYnVnKENQVVN0YXRlICpjcywgc3RydWN0IGt2bV9ndWVzdF9k ZWJ1ZyAqZGJnKQogewotICAgIHFlbXVfbG9nX21hc2soTE9HX1VOSU1QLCAiJXM6IG5vdCBpbXBs ZW1lbnRlZFxuIiwgX19mdW5jX18pOworICAgIGlmIChrdm1fc3dfYnJlYWtwb2ludHNfYWN0aXZl KGNzKSkgeworICAgICAgICBkYmctPmNvbnRyb2wgfD0gS1ZNX0dVRVNUREJHX0VOQUJMRSB8IEtW TV9HVUVTVERCR19VU0VfU1dfQlA7CisgICAgfQogfQogCi1pbnQga3ZtX2FyY2hfaW5zZXJ0X3N3 X2JyZWFrcG9pbnQoQ1BVU3RhdGUgKmNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBrdm1fc3dfYnJlYWtwb2ludCAqYnApCisvKiBDNi42LjI5IEJSSyBpbnN0cnVj dGlvbiAqLworaW50IGt2bV9hcmNoX2luc2VydF9zd19icmVha3BvaW50KENQVVN0YXRlICpjcywg c3RydWN0IGt2bV9zd19icmVha3BvaW50ICpicCkKIHsKLSAgICBxZW11X2xvZ19tYXNrKExPR19V TklNUCwgIiVzOiBub3QgaW1wbGVtZW50ZWRcbiIsIF9fZnVuY19fKTsKLSAgICByZXR1cm4gLUVJ TlZBTDsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgYnJrID0gMHhkNDIwMDAwMDsKKworICAg IGlmIChjcHVfbWVtb3J5X3J3X2RlYnVnKGNzLCBicC0+cGMsICh1aW50OF90ICopJmJwLT5zYXZl ZF9pbnNuLCA0LCAwKSB8fAorICAgICAgICBjcHVfbWVtb3J5X3J3X2RlYnVnKGNzLCBicC0+cGMs ICh1aW50OF90ICopJmJyaywgNCwgMSkpIHsKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAg fQorICAgIHJldHVybiAwOworfQorCitpbnQga3ZtX2FyY2hfcmVtb3ZlX3N3X2JyZWFrcG9pbnQo Q1BVU3RhdGUgKmNzLCBzdHJ1Y3Qga3ZtX3N3X2JyZWFrcG9pbnQgKmJwKQoreworICAgIHN0YXRp YyB1aW50MzJfdCBicms7CisKKyAgICBpZiAoY3B1X21lbW9yeV9yd19kZWJ1ZyhjcywgYnAtPnBj LCAodWludDhfdCAqKSZicmssIDQsIDApIHx8CisgICAgICAgIGJyayAhPSAweGQ0MjAwMDAwIHx8 CisgICAgICAgIGNwdV9tZW1vcnlfcndfZGVidWcoY3MsIGJwLT5wYywgKHVpbnQ4X3QgKikmYnAt PnNhdmVkX2luc24sIDQsIDEpKSB7CisgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKyAg ICByZXR1cm4gMDsKIH0KIAogaW50IGt2bV9hcmNoX2luc2VydF9od19icmVha3BvaW50KHRhcmdl dF91bG9uZyBhZGRyLApAQCAtNTYxLDEyICs2MzEsNiBAQCBpbnQga3ZtX2FyY2hfcmVtb3ZlX2h3 X2JyZWFrcG9pbnQodGFyZ2V0X3Vsb25nIGFkZHIsCiAgICAgcmV0dXJuIC1FSU5WQUw7CiB9CiAK LWludCBrdm1fYXJjaF9yZW1vdmVfc3dfYnJlYWtwb2ludChDUFVTdGF0ZSAqY3MsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGt2bV9zd19icmVha3BvaW50ICpicCkK LXsKLSAgICBxZW11X2xvZ19tYXNrKExPR19VTklNUCwgIiVzOiBub3QgaW1wbGVtZW50ZWRcbiIs IF9fZnVuY19fKTsKLSAgICByZXR1cm4gLUVJTlZBTDsKLX0KIAogdm9pZCBrdm1fYXJjaF9yZW1v dmVfYWxsX2h3X2JyZWFrcG9pbnRzKHZvaWQpCiB7Ci0tIAoyLjQuMQoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Ka3ZtYXJtIG1haWxpbmcgbGlzdAprdm1h cm1AbGlzdHMuY3MuY29sdW1iaWEuZWR1Cmh0dHBzOi8vbGlzdHMuY3MuY29sdW1iaWEuZWR1L21h aWxtYW4vbGlzdGluZm8va3ZtYXJtCg==