From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v2 REPOST 01/12] [x86|arm]: remove code duplication Date: Tue, 22 Aug 2017 15:50:55 +0100 Message-ID: <20170822145107.6877-2-paul.durrant@citrix.com> References: <20170822145107.6877-1-paul.durrant@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 1dkAX1-0002OY-30 for xen-devel@lists.xenproject.org; Tue, 22 Aug 2017 14:51:51 +0000 In-Reply-To: <20170822145107.6877-1-paul.durrant@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: Andrew Cooper , Julien Grall , Paul Durrant , Stefano Stabellini , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlcmUgaXMgYSBzdWJzdGFudGlhbCBhbW91bnQgb2YgY29kZSBkdXBsaWNhdGVkIGJldHdlZW4g dGhlIHg4NiBhbmQgYXJtCmltcGxlbWVudGF0aW9ucyBvZiBtbS5jOnhlbm1lbV9hZGRfdG9fcGh5 c21hcF9vbmUoKSBmb3IKWEVOTUFQU1BBQ0VfZ3JhbnRfdGFibGUuIEFsc28sIHRoZSBjb2RlIGlu IHF1ZXN0aW9uIGxvb2tzIGxpa2UgaXQgcmVhbGx5CnNob3VsZCBiZSBpbiBjb21tb24vZ3JhbnRf dGFibGUuYwoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZ1bmN0aW9uIGluIGNvbW1vbi9n cmFudF90YWJsZS5jIHRvIGdldCB0aGUgbWZuCm9mIGEgc3BlY2lmaWVkIGZyYW1lIGluIHRoZSBn cmFudCB0YWJsZSBvZiBhIHNwZWNpZmllZCBndWVzdCwgYW5kIGNhbGxzIHRvCnRoYXQgZnJvbSB0 aGUgYXJjaC1zcGVjaWZpYyBjb2RlIGluIG1tLmMuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJh bnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8 c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFy bS5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29v cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KIHhlbi9hcmNoL2FybS9tbS5jICAg ICAgICAgICAgIHwgMjkgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4 Ni9tbS5jICAgICAgICAgICAgIHwgMjYgKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9j b21tb24vZ3JhbnRfdGFibGUuYyAgICAgIHwgMzMgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiB4ZW4vaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaCB8ICAzICsrKwogNCBmaWxlcyBj aGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCA0OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC9hcm0vbW0uYyBiL3hlbi9hcmNoL2FybS9tbS5jCmluZGV4IGE4MTBhMDU2ZDcuLjVh ZTk2MDc4MjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9tbS5jCisrKyBiL3hlbi9hcmNoL2Fy bS9tbS5jCkBAIC0xMjI5LDMyICsxMjI5LDExIEBAIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXBf b25lKAogICAgIHN3aXRjaCAoIHNwYWNlICkKICAgICB7CiAgICAgY2FzZSBYRU5NQVBTUEFDRV9n cmFudF90YWJsZToKLSAgICAgICAgZ3JhbnRfd3JpdGVfbG9jayhkLT5ncmFudF90YWJsZSk7Ci0K LSAgICAgICAgaWYgKCBkLT5ncmFudF90YWJsZS0+Z3RfdmVyc2lvbiA9PSAwICkKLSAgICAgICAg ICAgIGQtPmdyYW50X3RhYmxlLT5ndF92ZXJzaW9uID0gMTsKLQotICAgICAgICBpZiAoIGQtPmdy YW50X3RhYmxlLT5ndF92ZXJzaW9uID09IDIgJiYKLSAgICAgICAgICAgICAgICAoaWR4ICYgWEVO TUFQSURYX2dyYW50X3RhYmxlX3N0YXR1cykgKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZHgg Jj0gflhFTk1BUElEWF9ncmFudF90YWJsZV9zdGF0dXM7Ci0gICAgICAgICAgICBpZiAoIGlkeCA8 IG5yX3N0YXR1c19mcmFtZXMoZC0+Z3JhbnRfdGFibGUpICkKLSAgICAgICAgICAgICAgICBtZm4g PSB2aXJ0X3RvX21mbihkLT5ncmFudF90YWJsZS0+c3RhdHVzW2lkeF0pOwotICAgICAgICAgICAg ZWxzZQotICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwotICAgICAgICB9Ci0gICAgICAg IGVsc2UKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKCAoaWR4ID49IG5yX2dyYW50X2ZyYW1l cyhkLT5ncmFudF90YWJsZSkpICYmCi0gICAgICAgICAgICAgICAgIChpZHggPCBtYXhfZ3JhbnRf ZnJhbWVzKSApCi0gICAgICAgICAgICAgICAgZ250dGFiX2dyb3dfdGFibGUoZCwgaWR4ICsgMSk7 Ci0KLSAgICAgICAgICAgIGlmICggaWR4IDwgbnJfZ3JhbnRfZnJhbWVzKGQtPmdyYW50X3RhYmxl KSApCi0gICAgICAgICAgICAgICAgbWZuID0gdmlydF90b19tZm4oZC0+Z3JhbnRfdGFibGUtPnNo YXJlZF9yYXdbaWR4XSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJu IC1FSU5WQUw7Ci0gICAgICAgIH0KKyAgICAgICAgbWZuID0gZ250dGFiX2dldF9mcmFtZShkLCBp ZHgpOworICAgICAgICBpZiAoIG1mbl9lcShtZm4sIElOVkFMSURfTUZOKSApCisgICAgICAgICAg ICByZXR1cm4gLUVJTlZBTDsKIAorICAgICAgICBncmFudF93cml0ZV9sb2NrKGQtPmdyYW50X3Rh YmxlKTsKICAgICAgICAgZC0+YXJjaC5ncmFudF90YWJsZV9nZm5baWR4XSA9IGdmbjsKIAogICAg ICAgICB0ID0gcDJtX3JhbV9ydzsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS5jIGIveGVu L2FyY2gveDg2L21tLmMKaW5kZXggNWI4NjNjNmZhNi4uMGFiYjFlMjg0ZiAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L21tLmMKKysrIGIveGVuL2FyY2gveDg2L21tLmMKQEAgLTQ2MzksMjkgKzQ2 MzksOSBAQCBpbnQgeGVubWVtX2FkZF90b19waHlzbWFwX29uZSgKICAgICAgICAgICAgICAgICBt Zm4gPSB2aXJ0X3RvX21mbihkLT5zaGFyZWRfaW5mbyk7CiAgICAgICAgICAgICBicmVhazsKICAg ICAgICAgY2FzZSBYRU5NQVBTUEFDRV9ncmFudF90YWJsZToKLSAgICAgICAgICAgIGdyYW50X3dy aXRlX2xvY2soZC0+Z3JhbnRfdGFibGUpOwotCi0gICAgICAgICAgICBpZiAoIGQtPmdyYW50X3Rh YmxlLT5ndF92ZXJzaW9uID09IDAgKQotICAgICAgICAgICAgICAgIGQtPmdyYW50X3RhYmxlLT5n dF92ZXJzaW9uID0gMTsKLQotICAgICAgICAgICAgaWYgKCBkLT5ncmFudF90YWJsZS0+Z3RfdmVy c2lvbiA9PSAyICYmCi0gICAgICAgICAgICAgICAgIChpZHggJiBYRU5NQVBJRFhfZ3JhbnRfdGFi bGVfc3RhdHVzKSApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWR4ICY9IH5YRU5N QVBJRFhfZ3JhbnRfdGFibGVfc3RhdHVzOwotICAgICAgICAgICAgICAgIGlmICggaWR4IDwgbnJf c3RhdHVzX2ZyYW1lcyhkLT5ncmFudF90YWJsZSkgKQotICAgICAgICAgICAgICAgICAgICBtZm4g PSB2aXJ0X3RvX21mbihkLT5ncmFudF90YWJsZS0+c3RhdHVzW2lkeF0pOwotICAgICAgICAgICAg fQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmICgg KGlkeCA+PSBucl9ncmFudF9mcmFtZXMoZC0+Z3JhbnRfdGFibGUpKSAmJgotICAgICAgICAgICAg ICAgICAgICAgKGlkeCA8IG1heF9ncmFudF9mcmFtZXMpICkKLSAgICAgICAgICAgICAgICAgICAg Z250dGFiX2dyb3dfdGFibGUoZCwgaWR4ICsgMSk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoIGlk eCA8IG5yX2dyYW50X2ZyYW1lcyhkLT5ncmFudF90YWJsZSkgKQotICAgICAgICAgICAgICAgICAg ICBtZm4gPSB2aXJ0X3RvX21mbihkLT5ncmFudF90YWJsZS0+c2hhcmVkX3Jhd1tpZHhdKTsKLSAg ICAgICAgICAgIH0KLQotICAgICAgICAgICAgZ3JhbnRfd3JpdGVfdW5sb2NrKGQtPmdyYW50X3Rh YmxlKTsKKyAgICAgICAgICAgIG1mbiA9IG1mbl94KGdudHRhYl9nZXRfZnJhbWUoZCwgaWR4KSk7 CisgICAgICAgICAgICBpZiAoIG1mbl9lcShfbWZuKG1mbiksIElOVkFMSURfTUZOKSApCisgICAg ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg Y2FzZSBYRU5NQVBTUEFDRV9nbWZuX3JhbmdlOgogICAgICAgICBjYXNlIFhFTk1BUFNQQUNFX2dt Zm46CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgYi94ZW4vY29tbW9uL2dy YW50X3RhYmxlLmMKaW5kZXggMGY5ZGQxZTcwNi4uYjMyNzQ1ODMwMSAxMDA2NDQKLS0tIGEveGVu L2NvbW1vbi9ncmFudF90YWJsZS5jCisrKyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwpAQCAt MTYyMSw2ICsxNjIxLDM5IEBAIGFjdGl2ZV9hbGxvY19mYWlsZWQ6CiAgICAgcmV0dXJuIDA7CiB9 CiAKK21mbl90CitnbnR0YWJfZ2V0X2ZyYW1lKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGlu dCBpZHgpCit7CisgICAgc3RydWN0IGdyYW50X3RhYmxlICpndCA9IGQtPmdyYW50X3RhYmxlOwor ICAgIG1mbl90IG1mbiA9IElOVkFMSURfTUZOOworCisgICAgZ3JhbnRfd3JpdGVfbG9jayhndCk7 CisKKyAgICBpZiAoIGd0LT5ndF92ZXJzaW9uID09IDAgKQorICAgICAgICBndC0+Z3RfdmVyc2lv biA9IDE7CisKKyAgICBpZiAoIGd0LT5ndF92ZXJzaW9uID09IDIgJiYKKyAgICAgICAgIChpZHgg JiBYRU5NQVBJRFhfZ3JhbnRfdGFibGVfc3RhdHVzKSApCisgICAgeworICAgICAgICBpZHggJj0g flhFTk1BUElEWF9ncmFudF90YWJsZV9zdGF0dXM7CisgICAgICAgIGlmICggaWR4IDwgbnJfc3Rh dHVzX2ZyYW1lcyhndCkgKQorICAgICAgICAgICAgbWZuID0gX21mbih2aXJ0X3RvX21mbihndC0+ c3RhdHVzW2lkeF0pKTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgaWYgKCAoaWR4 ID49IG5yX2dyYW50X2ZyYW1lcyhndCkpICYmCisgICAgICAgICAgICAgKGlkeCA8IG1heF9ncmFu dF9mcmFtZXMpICkKKyAgICAgICAgICAgIGdudHRhYl9ncm93X3RhYmxlKGQsIGlkeCArIDEpOwor CisgICAgICAgIGlmICggaWR4IDwgbnJfZ3JhbnRfZnJhbWVzKGd0KSApCisgICAgICAgICAgICBt Zm4gPSBfbWZuKHZpcnRfdG9fbWZuKGd0LT5zaGFyZWRfcmF3W2lkeF0pKTsKKyAgICB9CisKKyAg ICBncmFudF93cml0ZV91bmxvY2soZ3QpOworCisgICAgcmV0dXJuIG1mbjsKK30KKwogc3RhdGlj IGxvbmcgCiBnbnR0YWJfc2V0dXBfdGFibGUoCiAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTShn bnR0YWJfc2V0dXBfdGFibGVfdCkgdW9wLCB1bnNpZ25lZCBpbnQgY291bnQpCmRpZmYgLS1naXQg YS94ZW4vaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaCBiL3hlbi9pbmNsdWRlL3hlbi9ncmFudF90 YWJsZS5oCmluZGV4IGI1YWYyMWI1M2MuLjA3OWNmODJhMWUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL3hlbi9ncmFudF90YWJsZS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5o CkBAIC0xMjksNiArMTI5LDkgQEAgZ250dGFiX3JlbGVhc2VfbWFwcGluZ3MoCiBpbnQKIGdudHRh Yl9ncm93X3RhYmxlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCByZXFfbnJfZnJhbWVz KTsKIAorLyogR2V0IG1mbiBvZiBncmFudCBmcmFtZSAqLworbWZuX3QgZ250dGFiX2dldF9mcmFt ZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaWR4KTsKKwogLyogTnVtYmVyIG9mIGdy YW50IHRhYmxlIGZyYW1lcy4gQ2FsbGVyIG11c3QgaG9sZCBkJ3MgZ3JhbnQgdGFibGUgbG9jay4g Ki8KIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IG5yX2dyYW50X2ZyYW1lcyhzdHJ1Y3QgZ3Jh bnRfdGFibGUgKmd0KQogewotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==