From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH RFC 07/12] xen/x86: parse Dom0 kernel for PVHv2 Date: Fri, 29 Jul 2016 18:29:02 +0200 Message-ID: <1469809747-11176-8-git-send-email-roger.pau@citrix.com> References: <1469809747-11176-1-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bTAfB-0003VC-39 for xen-devel@lists.xenproject.org; Fri, 29 Jul 2016 16:29:29 +0000 In-Reply-To: <1469809747-11176-1-git-send-email-roger.pau@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 , Jan Beulich , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SW50cm9kdWNlIGEgaGVscGVyIHRvIHBhcnNlIHRoZSBEb20wIGtlcm5lbC4KClNpZ25lZC1vZmYt Ynk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotLS0KQ2M6IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29w ZXIzQGNpdHJpeC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2RvbWFpbl9idWlsZC5jIHwgMTM5ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdl ZCwgMTM5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluX2J1 aWxkLmMgYi94ZW4vYXJjaC94ODYvZG9tYWluX2J1aWxkLmMKaW5kZXggY2I4ZWNiZC4uZGY2MzU0 YSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2RvbWFpbl9idWlsZC5jCisrKyBiL3hlbi9hcmNo L3g4Ni9kb21haW5fYnVpbGQuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPHhlbi9jb21w YXQuaD4KICNpbmNsdWRlIDx4ZW4vbGliZWxmLmg+CiAjaW5jbHVkZSA8eGVuL3Bmbi5oPgorI2lu Y2x1ZGUgPHhlbi9ndWVzdF9hY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vcmVncy5oPgogI2luY2x1 ZGUgPGFzbS9zeXN0ZW0uaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTM4LDYgKzM5LDcgQEAK ICNpbmNsdWRlIDxhc20vaHBldC5oPgogCiAjaW5jbHVkZSA8cHVibGljL3ZlcnNpb24uaD4KKyNp bmNsdWRlIDxwdWJsaWMvYXJjaC14ODYvaHZtL3N0YXJ0X2luZm8uaD4KIAogc3RhdGljIGxvbmcg X19pbml0ZGF0YSBkb20wX25ycGFnZXM7CiBzdGF0aWMgbG9uZyBfX2luaXRkYXRhIGRvbTBfbWlu X25ycGFnZXM7CkBAIC0xODE4LDEyICsxODIwLDE0MSBAQCBzdGF0aWMgaW50IF9faW5pdCBodm1f c2V0dXBfcDJtKHN0cnVjdCBkb21haW4gKmQpCiAgICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBp bnQgX19pbml0IGh2bV9sb2FkX2tlcm5lbChzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBtb2R1bGVf dCAqaW1hZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyBpbWFnZV9oZWFkcm9vbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1 bGVfdCAqaW5pdHJkLCBjaGFyICppbWFnZV9iYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNoYXIgKmNtZGxpbmUsIHBhZGRyX3QgKmVudHJ5LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBhZGRyX3QgKnN0YXJ0X2luZm9fYWRkcikKK3sKKyAgICBjaGFy ICppbWFnZV9zdGFydCA9IGltYWdlX2Jhc2UgKyBpbWFnZV9oZWFkcm9vbTsKKyAgICB1bnNpZ25l ZCBsb25nIGltYWdlX2xlbiA9IGltYWdlLT5tb2RfZW5kOworICAgIHN0cnVjdCBlbGZfYmluYXJ5 IGVsZjsKKyAgICBzdHJ1Y3QgZWxmX2RvbV9wYXJtcyBwYXJtczsKKyAgICBwYWRkcl90IGxhc3Rf YWRkcjsKKyAgICBzdHJ1Y3QgaHZtX3N0YXJ0X2luZm8gc3RhcnRfaW5mbzsKKyAgICBzdHJ1Y3Qg aHZtX21vZGxpc3RfZW50cnkgbW9kOworICAgIHN0cnVjdCB2Y3B1ICpzYXZlZF9jdXJyZW50LCAq diA9IGQtPnZjcHVbMF07CisgICAgaW50IHJjOworCisgICAgcHJpbnRrKCIqKiBQYXJzaW5nIERv bTAga2VybmVsICoqXG4iKTsKKworICAgIGlmICggKHJjID0gYnppbWFnZV9wYXJzZShpbWFnZV9i YXNlLCAmaW1hZ2Vfc3RhcnQsICZpbWFnZV9sZW4pKSAhPSAwICkKKyAgICB7CisgICAgICAgIHBy aW50aygiRXJyb3IgdHJ5aW5nIHRvIGRldGVjdCBieiBjb21wcmVzc2VkIGtlcm5lbFxuIik7Cisg ICAgICAgIHJldHVybiByYzsKKyAgICB9CisKKyAgICBpZiAoIChyYyA9IGVsZl9pbml0KCZlbGYs IGltYWdlX3N0YXJ0LCBpbWFnZV9sZW4pKSAhPSAwICkKKyAgICB7CisgICAgICAgIHByaW50aygi VW5hYmxlIHRvIGluaXQgRUxGXG4iKTsKKyAgICAgICAgcmV0dXJuIHJjOworICAgIH0KKyNpZmRl ZiBWRVJCT1NFCisgICAgZWxmX3NldF92ZXJib3NlKCZlbGYpOworI2VuZGlmCisgICAgZWxmX3Bh cnNlX2JpbmFyeSgmZWxmKTsKKyAgICBpZiAoIChyYyA9IGVsZl94ZW5fcGFyc2UoJmVsZiwgJnBh cm1zKSkgIT0gMCApCisgICAgeworICAgICAgICBwcmludGsoIlVuYWJsZSB0byBwYXJzZSBrZXJu ZWwgZm9yIEVMRk5PVEVTXG4iKTsKKyAgICAgICAgcmV0dXJuIHJjOworICAgIH0KKworICAgIGlm ICggcGFybXMucGh5c19lbnRyeSA9PSBVTlNFVF9BRERSMzIgKSB7CisgICAgICAgIHByaW50aygi VW5hYmxlIHRvIGZpbmQga2VybmVsIGVudHJ5IHBvaW50LCBhYm9ydGluZ1xuIik7CisgICAgICAg IHJldHVybiAtRUlOVkFMOworICAgIH0KKworICAgIHByaW50aygiT1M6ICVzIHZlcnNpb246ICVz IGxvYWRlcjogJXMgYml0bmVzczogJXNcbiIsIHBhcm1zLmd1ZXN0X29zLAorICAgICAgICAgICBw YXJtcy5ndWVzdF92ZXIsIHBhcm1zLmxvYWRlciwKKyAgICAgICAgICAgZWxmXzY0Yml0KCZlbGYp ID8gIjY0LWJpdCIgOiAiMzItYml0Iik7CisKKyAgICBwcmludGsoIioqIExvYWRpbmcgRG9tMCBr ZXJuZWwgKipcbiIpOworICAgIC8qIENvcHkgdGhlIE9TIGltYWdlIGFuZCBmcmVlIHRlbXBvcmFy eSBidWZmZXIuICovCisgICAgZWxmLmRlc3RfYmFzZSA9ICh2b2lkICopKHBhcm1zLnZpcnRfa3N0 YXJ0IC0gcGFybXMudmlydF9iYXNlKTsKKyAgICBlbGYuZGVzdF9zaXplID0gcGFybXMudmlydF9r ZW5kIC0gcGFybXMudmlydF9rc3RhcnQ7CisKKyAgICBzYXZlZF9jdXJyZW50ID0gY3VycmVudDsK KyAgICBzZXRfY3VycmVudCh2KTsKKworICAgIHJjID0gZWxmX2xvYWRfYmluYXJ5KCZlbGYpOwor ICAgIGlmICggcmMgPCAwICkKKyAgICB7CisgICAgICAgIHByaW50aygiRmFpbGVkIHRvIGxvYWQg a2VybmVsOiAlZFxuIiwgcmMpOworICAgICAgICBwcmludGsoIlhlbiBkb20wIGtlcm5lbCBicm9r ZW4gRUxGOiAlc1xuIiwgZWxmX2NoZWNrX2Jyb2tlbigmZWxmKSk7CisgICAgICAgIGdvdG8gb3V0 OworICAgIH0KKworICAgIGxhc3RfYWRkciA9IFJPVU5EVVAocGFybXMudmlydF9rZW5kIC0gcGFy bXMudmlydF9iYXNlLCBQQUdFX1NJWkUpOworICAgIHByaW50aygiKiogQ29weWluZyBEb20wIG1v ZHVsZXMgKipcbiIpOworCisgICAgcmMgPSBodm1fY29weV90b19ndWVzdF9waHlzKGxhc3RfYWRk ciwgbWZuX3RvX3ZpcnQoaW5pdHJkLT5tb2Rfc3RhcnQpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbml0cmQtPm1vZF9lbmQpOworICAgIGlmICggcmMgIT0gSFZNQ09QWV9va2F5 ICkKKyAgICB7CisgICAgICAgIHByaW50aygiVW5hYmxlIHRvIGNvcHkgaW5pdHJkIHRvIGd1ZXN0 XG4iKTsKKyAgICAgICAgcmMgPSAtRUZBVUxUOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisK KyAgICBtb2QucGFkZHIgPSBsYXN0X2FkZHI7CisgICAgbW9kLnNpemUgPSBpbml0cmQtPm1vZF9l bmQ7CisgICAgbGFzdF9hZGRyICs9IFJPVU5EVVAoaW5pdHJkLT5tb2RfZW5kLCBQQUdFX1NJWkUp OworCisgICAgLyogRnJlZSB0ZW1wb3JhcnkgYnVmZmVycy4gKi8KKyAgICBkaXNjYXJkX2luaXRp YWxfaW1hZ2VzKCk7CisKKyAgICBwcmludGsoIioqIFNldHRpbmcgdXAgc3RhcnQtb2YtZGF5IGlu Zm8gKipcbiIpOworCisgICAgbWVtc2V0KCZzdGFydF9pbmZvLCAwLCBzaXplb2Yoc3RhcnRfaW5m bykpOworICAgIGlmICggY21kbGluZSAhPSBOVUxMICkKKyAgICB7CisgICAgICAgIHJjID0gaHZt X2NvcHlfdG9fZ3Vlc3RfcGh5cyhsYXN0X2FkZHIsIGNtZGxpbmUsIHN0cmxlbihjbWRsaW5lKSAr IDEpOworICAgICAgICBpZiAoIHJjICE9IEhWTUNPUFlfb2theSApCisgICAgICAgIHsKKyAgICAg ICAgICAgIHByaW50aygiVW5hYmxlIHRvIGNvcHkgZ3Vlc3QgY29tbWFuZCBsaW5lXG4iKTsKKyAg ICAgICAgICAgIHJjID0gLUVGQVVMVDsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9 CisgICAgICAgIHN0YXJ0X2luZm8uY21kbGluZV9wYWRkciA9IGxhc3RfYWRkcjsKKyAgICAgICAg bGFzdF9hZGRyICs9IFJPVU5EVVAoc3RybGVuKGNtZGxpbmUpICsgMSwgOCk7CisgICAgfQorICAg IHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfcGh5cyhsYXN0X2FkZHIsICZtb2QsIHNpemVvZihtb2Qp KTsKKyAgICBpZiAoIHJjICE9IEhWTUNPUFlfb2theSApCisgICAgeworICAgICAgICBwcmludGso IlVuYWJsZSB0byBjb3B5IGd1ZXN0IG1vZHVsZXNcbiIpOworICAgICAgICByYyA9IC1FRkFVTFQ7 CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIHN0YXJ0X2luZm8ubW9kbGlzdF9wYWRk ciA9IGxhc3RfYWRkcjsKKyAgICBzdGFydF9pbmZvLm5yX21vZHVsZXMgPSAxOworICAgIGxhc3Rf YWRkciArPSBzaXplb2YobW9kKTsKKyAgICBzdGFydF9pbmZvLm1hZ2ljID0gWEVOX0hWTV9TVEFS VF9NQUdJQ19WQUxVRTsKKyAgICBzdGFydF9pbmZvLmZsYWdzID0gU0lGX1BSSVZJTEVHRUQgfCBT SUZfSU5JVERPTUFJTjsKKyAgICByYyA9IGh2bV9jb3B5X3RvX2d1ZXN0X3BoeXMobGFzdF9hZGRy LCAmc3RhcnRfaW5mbywgc2l6ZW9mKHN0YXJ0X2luZm8pKTsKKyAgICBpZiAoIHJjICE9IEhWTUNP UFlfb2theSApCisgICAgeworICAgICAgICBwcmludGsoIlVuYWJsZSB0byBjb3B5IHN0YXJ0IGlu Zm8gdG8gZ3Vlc3RcbiIpOworICAgICAgICByYyA9IC1FRkFVTFQ7CisgICAgICAgIGdvdG8gb3V0 OworICAgIH0KKworICAgICplbnRyeSA9IHBhcm1zLnBoeXNfZW50cnk7CisgICAgKnN0YXJ0X2lu Zm9fYWRkciA9IGxhc3RfYWRkcjsKKyAgICByYyA9IDA7CisKK291dDoKKyAgICBzZXRfY3VycmVu dChzYXZlZF9jdXJyZW50KTsKKyAgICByZXR1cm4gcmM7Cit9CisKIHN0YXRpYyBpbnQgX19pbml0 IGNvbnN0cnVjdF9kb20wX2h2bShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBtb2R1bGVfdCAqaW1h Z2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBp bWFnZV9oZWFkcm9vbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1 bGVfdCAqaW5pdHJkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQg KigqYm9vdHN0cmFwX21hcCkoY29uc3QgbW9kdWxlX3QgKiksCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2hhciAqY21kbGluZSkKIHsKKyAgICBwYWRkcl90IGVudHJ5LCBz dGFydF9pbmZvOwogICAgIGludCByYzsKIAogICAgIHByaW50aygiKiogQnVpbGRpbmcgYSBQVkgg RG9tMCAqKlxuIik7CkBAIC0xODQzLDYgKzE5NzQsMTQgQEAgc3RhdGljIGludCBfX2luaXQgY29u c3RydWN0X2RvbTBfaHZtKHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IG1vZHVsZV90ICppbWFnZSwK ICAgICAgICAgcmV0dXJuIHJjOwogICAgIH0KIAorICAgIHJjID0gaHZtX2xvYWRfa2VybmVsKGQs IGltYWdlLCBpbWFnZV9oZWFkcm9vbSwgaW5pdHJkLCBib290c3RyYXBfbWFwKGltYWdlKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICBjbWRsaW5lLCAmZW50cnksICZzdGFydF9pbmZvKTsKKyAg ICBpZiAoIHJjICkKKyAgICB7CisgICAgICAgIHByaW50aygiRmFpbGVkIHRvIGxvYWQgRG9tMCBr ZXJuZWxcbiIpOworICAgICAgICByZXR1cm4gcmM7CisgICAgfQorCiAgICAgcmV0dXJuIDA7CiB9 CiAKLS0gCjIuNy40IChBcHBsZSBHaXQtNjYpCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==