From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v4 06/19] x86/boot/reloc: create generic alloc and copy functions Date: Sat, 6 Aug 2016 01:04:29 +0200 Message-ID: <1470438282-4226-7-git-send-email-daniel.kiper@oracle.com> References: <1470438282-4226-1-git-send-email-daniel.kiper@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bVoBO-00036V-VH for xen-devel@lists.xenproject.org; Fri, 05 Aug 2016 23:05:39 +0000 In-Reply-To: <1470438282-4226-1-git-send-email-daniel.kiper@oracle.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: jgross@suse.com, sstabellini@kernel.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, david.vrabel@citrix.com, jbeulich@suse.com, qiaowei.ren@intel.com, richard.l.maliszewski@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org Q3JlYXRlIGdlbmVyaWMgYWxsb2MgYW5kIGNvcHkgZnVuY3Rpb25zLiBXZSBuZWVkCnNlcGFyYXRl IHRvb2xzIGZvciBtZW1vcnkgYWxsb2NhdGlvbiBhbmQgY29weSB0bwpwcm92aWRlIG11bHRpYm9v dDIgcHJvdG9jb2wgc3VwcG9ydC4KClNpZ25lZC1vZmYtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVs LmtpcGVyQG9yYWNsZS5jb20+Ci0tLQp2NCAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIGF2b2lk IGFzc2VtYmx5IHVzYWdlLgoKdjMgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSB1c2UgImciIGNv bnN0cmFpbnQgaW5zdGVhZCBvZiAiciIgZm9yIGFsbG9jX21lbSgpIGJ5dGVzIGFyZ3VtZW50CiAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCgp2MiAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgog ICAtIGdlbmVyYWxpemUgbmV3IGZ1bmN0aW9ucyBuYW1lcwogICAgIChzdWdnZXN0ZWQgYnkgSmFu IEJldWxpY2gpLAogICAtIHJlZHVjZSBudW1iZXIgb2YgY2FzdHMKICAgICAoc3VnZ2VzdGVkIGJ5 IEphbiBCZXVsaWNoKS4KLS0tCiB4ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jIHwgICA1MSArKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAzMCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvYm9vdC9yZWxvYy5jIGIveGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuYwppbmRleCAyOGM2 Y2VhLi4yMWIxZjMyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jCisrKyBi L3hlbi9hcmNoL3g4Ni9ib290L3JlbG9jLmMKQEAgLTMyLDYwICszMiw2OSBAQCB0eXBlZGVmIHVu c2lnbmVkIGludCB1MzI7CiAKIHN0YXRpYyB1MzIgYWxsb2M7CiAKLXN0YXRpYyB2b2lkICpyZWxv Y19tYmlfc3RydWN0KHZvaWQgKm9sZCwgdW5zaWduZWQgaW50IGJ5dGVzKQorc3RhdGljIHUzMiBh bGxvY19tZW0odTMyIGJ5dGVzKQogewotICAgIHZvaWQgKm5ldzsKKyAgICByZXR1cm4gYWxsb2Mg LT0gQUxJR05fVVAoYnl0ZXMsIDE2KTsKK30KIAotICAgIGFsbG9jIC09IEFMSUdOX1VQKGJ5dGVz LCAxNik7Ci0gICAgbmV3ID0gKHZvaWQgKilhbGxvYzsKK3N0YXRpYyB1MzIgY29weV9tZW0odTMy IHNyYywgdTMyIGJ5dGVzKQoreworICAgIHUzMiBkc3QsIGRzdF9yZXQ7CisKKyAgICBkc3QgPSBh bGxvY19tZW0oYnl0ZXMpOworICAgIGRzdF9yZXQgPSBkc3Q7CiAKICAgICB3aGlsZSAoIGJ5dGVz LS0gKQotICAgICAgICAqKGNoYXIgKiluZXcrKyA9ICooY2hhciAqKW9sZCsrOworICAgICAgICAq KGNoYXIgKilkc3QrKyA9ICooY2hhciAqKXNyYysrOwogCi0gICAgcmV0dXJuICh2b2lkICopYWxs b2M7CisgICAgcmV0dXJuIGRzdF9yZXQ7CiB9CiAKLXN0YXRpYyBjaGFyICpyZWxvY19tYmlfc3Ry aW5nKGNoYXIgKm9sZCkKK3N0YXRpYyB1MzIgY29weV9zdHJpbmcodTMyIHNyYykKIHsKLSAgICBj aGFyICpwOwotICAgIGZvciAoIHAgPSBvbGQ7ICpwICE9ICdcMCc7IHArKyApCisgICAgdTMyIHA7 CisKKyAgICBpZiAoIHNyYyA9PSAwICkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBmb3IgKCBw ID0gc3JjOyAqKGNoYXIgKilwICE9ICdcMCc7IHArKyApCiAgICAgICAgIGNvbnRpbnVlOwotICAg IHJldHVybiByZWxvY19tYmlfc3RydWN0KG9sZCwgcCAtIG9sZCArIDEpOworCisgICAgcmV0dXJu IGNvcHlfbWVtKHNyYywgcCAtIHNyYyArIDEpOwogfQogCi1tdWx0aWJvb3RfaW5mb190IF9fc3Rk Y2FsbCAqcmVsb2MobXVsdGlib290X2luZm9fdCAqbWJpX29sZCwgdTMyIHRyYW1wb2xpbmUpCitt dWx0aWJvb3RfaW5mb190IF9fc3RkY2FsbCAqcmVsb2ModTMyIG1iaV9vbGQsIHUzMiB0cmFtcG9s aW5lKQogewogICAgIG11bHRpYm9vdF9pbmZvX3QgKm1iaTsKICAgICBpbnQgaTsKIAogICAgIGFs bG9jID0gdHJhbXBvbGluZTsKIAotICAgIG1iaSA9IHJlbG9jX21iaV9zdHJ1Y3QobWJpX29sZCwg c2l6ZW9mKCptYmkpKTsKKyAgICBtYmkgPSAobXVsdGlib290X2luZm9fdCAqKWNvcHlfbWVtKG1i aV9vbGQsIHNpemVvZigqbWJpKSk7CiAKICAgICBpZiAoIG1iaS0+ZmxhZ3MgJiBNQklfQ01ETElO RSApCi0gICAgICAgIG1iaS0+Y21kbGluZSA9ICh1MzIpcmVsb2NfbWJpX3N0cmluZygoY2hhciAq KW1iaS0+Y21kbGluZSk7CisgICAgICAgIG1iaS0+Y21kbGluZSA9IGNvcHlfc3RyaW5nKG1iaS0+ Y21kbGluZSk7CiAKICAgICBpZiAoIG1iaS0+ZmxhZ3MgJiBNQklfTU9EVUxFUyApCiAgICAgewot ICAgICAgICBtb2R1bGVfdCAqbW9kcyA9IHJlbG9jX21iaV9zdHJ1Y3QoCi0gICAgICAgICAgICAo bW9kdWxlX3QgKiltYmktPm1vZHNfYWRkciwgbWJpLT5tb2RzX2NvdW50ICogc2l6ZW9mKG1vZHVs ZV90KSk7CisgICAgICAgIG1vZHVsZV90ICptb2RzOwogCi0gICAgICAgIG1iaS0+bW9kc19hZGRy ID0gKHUzMiltb2RzOworICAgICAgICBtYmktPm1vZHNfYWRkciA9IGNvcHlfbWVtKG1iaS0+bW9k c19hZGRyLCBtYmktPm1vZHNfY291bnQgKiBzaXplb2YobW9kdWxlX3QpKTsKKworICAgICAgICBt b2RzID0gKG1vZHVsZV90ICopbWJpLT5tb2RzX2FkZHI7CiAKICAgICAgICAgZm9yICggaSA9IDA7 IGkgPCBtYmktPm1vZHNfY291bnQ7IGkrKyApCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICgg bW9kc1tpXS5zdHJpbmcgKQotICAgICAgICAgICAgICAgIG1vZHNbaV0uc3RyaW5nID0gKHUzMily ZWxvY19tYmlfc3RyaW5nKChjaGFyICopbW9kc1tpXS5zdHJpbmcpOworICAgICAgICAgICAgICAg IG1vZHNbaV0uc3RyaW5nID0gY29weV9zdHJpbmcobW9kc1tpXS5zdHJpbmcpOwogICAgICAgICB9 CiAgICAgfQogCiAgICAgaWYgKCBtYmktPmZsYWdzICYgTUJJX01FTU1BUCApCi0gICAgICAgIG1i aS0+bW1hcF9hZGRyID0gKHUzMilyZWxvY19tYmlfc3RydWN0KAotICAgICAgICAgICAgKG1lbW9y eV9tYXBfdCAqKW1iaS0+bW1hcF9hZGRyLCBtYmktPm1tYXBfbGVuZ3RoKTsKKyAgICAgICAgbWJp LT5tbWFwX2FkZHIgPSBjb3B5X21lbShtYmktPm1tYXBfYWRkciwgbWJpLT5tbWFwX2xlbmd0aCk7 CiAKICAgICBpZiAoIG1iaS0+ZmxhZ3MgJiBNQklfTE9BREVSTkFNRSApCi0gICAgICAgIG1iaS0+ Ym9vdF9sb2FkZXJfbmFtZSA9ICh1MzIpcmVsb2NfbWJpX3N0cmluZygKLSAgICAgICAgICAgIChj aGFyICopbWJpLT5ib290X2xvYWRlcl9uYW1lKTsKKyAgICAgICAgbWJpLT5ib290X2xvYWRlcl9u YW1lID0gY29weV9zdHJpbmcobWJpLT5ib290X2xvYWRlcl9uYW1lKTsKIAogICAgIC8qIE1hc2sg ZmVhdHVyZXMgd2UgZG9uJ3QgdW5kZXJzdGFuZCBvciBkb24ndCByZWxvY2F0ZS4gKi8KICAgICBt YmktPmZsYWdzICY9IChNQklfTUVNTElNSVRTIHwKLS0gCjEuNy4xMC40CgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVs Cg==