From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [RFC 05/22] xen/arm: traps: Move MMIO emulation code in a separate helper Date: Thu, 28 Jul 2016 15:51:28 +0100 Message-ID: <1469717505-8026-6-git-send-email-julien.grall@arm.com> References: <1469717505-8026-1-git-send-email-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1469717505-8026-1-git-send-email-julien.grall@arm.com> 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: proskurin@sec.in.tum.de, Julien Grall , sstabellini@kernel.org, steve.capper@arm.com, wei.chen@linaro.org List-Id: xen-devel@lists.xenproject.org Q3VycmVudGx5LCBhIHN0YWdlLTIgZmF1bHQgdHJhbnNsYXRpb24gd2lsbCBsaWtlbHkgYWNjZXNz IGFuIGVtdWxhdGVkCnJlZ2lvbi4gQWxsIHRoZSBjaGVja3MgYXJlIHByZS1zYW5pdGl0eSBjaGVj ayBmb3IgTU1JTyBlbXVsYXRpb24uCgpBIGZvbGxvdy11cCBwYXRjaCB3aWxsIGhhbmRsZSBhIG5l dyBjYXNlIHRoYXQgY291bGQgbGVhZCB0byBhIHN0YWdlLTIKdHJhbnNsYXRpb24uIFRvIGltcHJv dmUgdGhlIGNsYXJpdHkgb2YgdGhlIGNvZGUgYW5kIHRoZSBjaGFuZ2VzLCB0aGUKY3VycmVudCBp bXBsZW1lbnRhdGlvbiBpcyBtb3ZlIGluIGEgc2VwYXJhdGUgaGVscGVyLgoKU2lnbmVkLW9mZi1i eTogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KLS0tCiB4ZW4vYXJjaC9hcm0v dHJhcHMuYyB8IDU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdHJhcHMuYyBiL3hlbi9hcmNoL2FybS90cmFw cy5jCmluZGV4IDQ2ZTA2NjMuLmI0NjI4NGMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS90cmFw cy5jCisrKyBiL3hlbi9hcmNoL2FybS90cmFwcy5jCkBAIC0yNDQ0LDYgKzI0NDQsMzggQEAgc3Rh dGljIHZvaWQgZG9fdHJhcF9pbnN0cl9hYm9ydF9ndWVzdChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq cmVncywKICAgICBpbmplY3RfaWFidF9leGNlcHRpb24ocmVncywgZ3ZhLCBoc3IubGVuKTsKIH0K IAorc3RhdGljIGJvb2xfdCB0cnlfaGFuZGxlX21taW8oc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl Z3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbWlvX2luZm9fdCAqaW5mbykKK3sK KyAgICBjb25zdCBzdHJ1Y3QgaHNyX2RhYnQgZGFidCA9IGluZm8tPmRhYnQ7CisgICAgaW50IHJj OworCisgICAgLyogc3RhZ2UtMSBwYWdlIHRhYmxlIHNob3VsZCBuZXZlciBsaXZlIGluIGFuIGVt dWxhdGVkIE1NSU8gcmVnaW9uICovCisgICAgaWYgKCBkYWJ0LnMxcHR3ICkKKyAgICAgICAgcmV0 dXJuIDA7CisKKyAgICAvKiBBbGwgdGhlIGluc3RydWN0aW9ucyB1c2VkIG9uIGVtdWxhdGVkIE1N SU8gcmVnaW9uIHNob3VsZCBiZSB2YWxpZCAqLworICAgIGlmICggIWRhYnQudmFsaWQgKQorICAg ICAgICByZXR1cm4gMDsKKworICAgIC8qCisgICAgICogRXJyYXR1bSA3NjY0MjI6IFRodW1iIHN0 b3JlIHRyYW5zbGF0aW9uIGZhdWx0IHRvIEh5cGVydmlzb3IgbWF5CisgICAgICogbm90IGhhdmUg Y29ycmVjdCBIU1IgUnQgdmFsdWUuCisgICAgICovCisgICAgaWYgKCBjaGVja193b3JrYXJvdW5k Xzc2NjQyMigpICYmIChyZWdzLT5jcHNyICYgUFNSX1RIVU1CKSAmJgorICAgICAgICAgZGFidC53 cml0ZSApCisgICAgeworICAgICAgICByYyA9IGRlY29kZV9pbnN0cnVjdGlvbihyZWdzLCAmaW5m by0+ZGFidCk7CisgICAgICAgIGlmICggcmMgKQorICAgICAgICB7CisgICAgICAgICAgICBncHJp bnRrKFhFTkxPR19ERUJVRywgIlVuYWJsZSB0byBkZWNvZGUgaW5zdHJ1Y3Rpb25cbiIpOworICAg ICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gISFoYW5k bGVfbW1pbyhpbmZvKTsKK30KKwogc3RhdGljIHZvaWQgZG9fdHJhcF9kYXRhX2Fib3J0X2d1ZXN0 KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHVuaW9uIGhzciBoc3IpCiB7CkBAIC0yNDg3LDQwICsyNTE5LDE2IEBA IHN0YXRpYyB2b2lkIGRvX3RyYXBfZGF0YV9hYm9ydF9ndWVzdChzdHJ1Y3QgY3B1X3VzZXJfcmVn cyAqcmVncywKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgRlNDX0ZMVF9UUkFOUzoK LSAgICAgICAgaWYgKCBkYWJ0LnMxcHR3ICkKLSAgICAgICAgICAgIGdvdG8gYmFkX2RhdGFfYWJv cnQ7Ci0KLSAgICAgICAgLyogWFhYOiBEZWNvZGUgdGhlIGluc3RydWN0aW9uIGlmIElTUyBpcyBu b3QgdmFsaWQgKi8KLSAgICAgICAgaWYgKCAhZGFidC52YWxpZCApCi0gICAgICAgICAgICBnb3Rv IGJhZF9kYXRhX2Fib3J0OwotCi0gICAgICAgIC8qCi0gICAgICAgICAqIEVycmF0dW0gNzY2NDIy OiBUaHVtYiBzdG9yZSB0cmFuc2xhdGlvbiBmYXVsdCB0byBIeXBlcnZpc29yIG1heQotICAgICAg ICAgKiBub3QgaGF2ZSBjb3JyZWN0IEhTUiBSdCB2YWx1ZS4KLSAgICAgICAgICovCi0gICAgICAg IGlmICggY2hlY2tfd29ya2Fyb3VuZF83NjY0MjIoKSAmJiAocmVncy0+Y3BzciAmIFBTUl9USFVN QikgJiYKLSAgICAgICAgICAgICBkYWJ0LndyaXRlICkKLSAgICAgICAgewotICAgICAgICAgICAg cmMgPSBkZWNvZGVfaW5zdHJ1Y3Rpb24ocmVncywgJmluZm8uZGFidCk7Ci0gICAgICAgICAgICBp ZiAoIHJjICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBncHJpbnRrKFhFTkxPR19E RUJVRywgIlVuYWJsZSB0byBkZWNvZGUgaW5zdHJ1Y3Rpb25cbiIpOwotICAgICAgICAgICAgICAg IGdvdG8gYmFkX2RhdGFfYWJvcnQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAg ICBpZiAoIGhhbmRsZV9tbWlvKCZpbmZvKSApCisgICAgICAgIGlmICggdHJ5X2hhbmRsZV9tbWlv KHJlZ3MsICZpbmZvKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGFkdmFuY2VfcGMocmVncywg aHNyKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBicmVhazsKICAg ICBkZWZhdWx0OgogICAgICAgICBncHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiVW5zdXBwb3J0ZWQg REZTQzogSFNSPSUjeCBERlNDPSUjeFxuIiwKICAgICAgICAgICAgICAgICBoc3IuYml0cywgZGFi dC5kZnNjKTsKICAgICB9CiAKLWJhZF9kYXRhX2Fib3J0OgogICAgIGdkcHJpbnRrKFhFTkxPR19E RUJVRywgIkhTUj0weCV4IHBjPSUjIlBSSXJlZ2lzdGVyIiBndmE9JSMiUFJJdmFkZHIKICAgICAg ICAgICAgICAiIGdwYT0lIyJQUklwYWRkciJcbiIsIGhzci5iaXRzLCByZWdzLT5wYywgaW5mby5n dmEsIGluZm8uZ3BhKTsKICAgICBpbmplY3RfZGFidF9leGNlcHRpb24ocmVncywgaW5mby5ndmEs IGhzci5sZW4pOwotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK