From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v4 04/19] xen: prepare common code for Xen PVH support Date: Fri, 2 Nov 2018 13:37:23 +0100 Message-ID: <20181102123738.16395-5-jgross@suse.com> References: <20181102123738.16395-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181102123738.16395-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: grub-devel@gnu.org Cc: hans@knorrie.org, phcoder@gmail.com, daniel.kiper@oracle.com, Juergen Gross , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org U29tZSBjb21tb24gY29kZSBuZWVkcyB0byBiZSBzcGVjaWFsIGNhc2VkIGZvciBYZW4gUFZIIG1v ZGUuIFRoaXMgaGl0cwptb3N0bHkgWGVuIFBWIG1vZGUgc3BlY2lmaWMgYXJlYXMuCgpTcGxpdCBp bmNsdWRlL2dydWIvaTM4Ni9wYy9pbnRfdHlwZXMuaCBvZmYgZnJvbQppbmNsdWRlL2dydWIvaTM4 Ni9wYy9pbnQuaCB0byBzdXBwb3J0IGluY2x1ZGluZyB0aGlzIGZpbGUgbGF0ZXIgZnJvbQp4ZW5f cHZoIGNvZGUgd2l0aG91dCB0aGUgZ3J1Yl9iaW9zX2ludGVycnVwdCBkZWZpbml0aW9uLgoKTW92 ZSBkZWZpbml0aW9uIG9mIHN0cnVjdCBncnViX2U4MjBfbW1hcF9lbnRyeSBmcm9tCmdydWItY29y ZS9tbWFwL2kzODYvcGMvbW1hcC5jIHRvIGluY2x1ZGUvZ3J1Yi9pMzg2L21lbW9yeS5oIGluIG9y ZGVyCnRvIG1ha2UgaXQgdXNhYmxlIGZyb20geGVuX3B2aCBjb2RlLgoKU2lnbmVkLW9mZi1ieTog SnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KVjM6IEdSVUJfTUFDSElORV9YRU5Q VkggLT4gR1JVQl9NQUNISU5FX1hFTl9QVkggKERhbmllbCBLaXBlcikKICAgIHNwbGl0IGluY2x1 ZGUvZ3J1Yi9pMzg2L3BjL2ludC5oIChEYW5pZWwgS2lwZXIpCiAgICBtb3ZlIHN0cnVjdCBncnVi X2U4MjBfbW1hcF9lbnRyeSBkZWZpbml0aW9uIHRvIGhlYWRlciBmaWxlCi0tLQogZ3J1Yi1jb3Jl L2tlcm4vaTM4Ni90c2MuYyAgICAgICAgIHwgIDIgKy0KIGdydWItY29yZS9tbWFwL2kzODYvcGMv bW1hcC5jICAgICB8ICA3IC0tLS0tCiBpbmNsdWRlL2dydWIvaTM4Ni9tZW1vcnkuaCAgICAgICAg fCAgNyArKysrKwogaW5jbHVkZS9ncnViL2kzODYvcGMvaW50LmggICAgICAgIHwgMzYgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2dydWIvaTM4Ni9wYy9pbnRfdHlwZXMuaCAgfCA1 OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvZ3J1Yi9p Mzg2L3RzYy5oICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL2dydWIvaTM4Ni94ZW4vaHlwZXJj YWxsLmggfCAgNSArKystCiBpbmNsdWRlL2dydWIva2VybmVsLmggICAgICAgICAgICAgfCAgNCAr Ky0KIDggZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9ncnViL2kzODYvcGMvaW50X3R5cGVzLmgKCmRpZmYg LS1naXQgYS9ncnViLWNvcmUva2Vybi9pMzg2L3RzYy5jIGIvZ3J1Yi1jb3JlL2tlcm4vaTM4Ni90 c2MuYwppbmRleCBmMjY2ZWIxMzEuLjkyOTNiMTYxZCAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2tl cm4vaTM4Ni90c2MuYworKysgYi9ncnViLWNvcmUva2Vybi9pMzg2L3RzYy5jCkBAIC02NSw3ICs2 NSw3IEBAIGdydWJfdHNjX2luaXQgKHZvaWQpCiAKICAgdHNjX2Jvb3RfdGltZSA9IGdydWJfZ2V0 X3RzYyAoKTsKIAotI2lmZGVmIEdSVUJfTUFDSElORV9YRU4KKyNpZiBkZWZpbmVkIChHUlVCX01B Q0hJTkVfWEVOKSB8fCBkZWZpbmVkIChHUlVCX01BQ0hJTkVfWEVOX1BWSCkKICAgKHZvaWQpIChn cnViX3RzY19jYWxpYnJhdGVfZnJvbV94ZW4gKCkgfHwgY2FsaWJyYXRlX3RzY19oYXJkY29kZSgp KTsKICNlbGlmIGRlZmluZWQgKEdSVUJfTUFDSElORV9FRkkpCiAgICh2b2lkKSAoZ3J1Yl90c2Nf Y2FsaWJyYXRlX2Zyb21fcG10aW1lciAoKSB8fCBncnViX3RzY19jYWxpYnJhdGVfZnJvbV9waXQg KCkgfHwgZ3J1Yl90c2NfY2FsaWJyYXRlX2Zyb21fZWZpKCkgfHwgY2FsaWJyYXRlX3RzY19oYXJk Y29kZSgpKTsKZGlmZiAtLWdpdCBhL2dydWItY29yZS9tbWFwL2kzODYvcGMvbW1hcC5jIGIvZ3J1 Yi1jb3JlL21tYXAvaTM4Ni9wYy9tbWFwLmMKaW5kZXggNjA5OTk0NTE2Li5iY2IwOTdjMzggMTAw NjQ0Ci0tLSBhL2dydWItY29yZS9tbWFwL2kzODYvcGMvbW1hcC5jCisrKyBiL2dydWItY29yZS9t bWFwL2kzODYvcGMvbW1hcC5jCkBAIC00MiwxMyArNDIsNiBAQCBleHRlcm4gZ3J1Yl91aW50MTZf dCBncnViX21hY2hpbmVfbW1hcGhvb2tfa2Jsb3c7CiBleHRlcm4gZ3J1Yl91aW50MTZfdCBncnVi X21hY2hpbmVfbW1hcGhvb2tfa2JpbjE2bWI7CiBleHRlcm4gZ3J1Yl91aW50MTZfdCBncnViX21h Y2hpbmVfbW1hcGhvb2tfNjRrYmluNGdiOwogCi1zdHJ1Y3QgZ3J1Yl9lODIwX21tYXBfZW50cnkK LXsKLSAgZ3J1Yl91aW50NjRfdCBhZGRyOwotICBncnViX3VpbnQ2NF90IGxlbjsKLSAgZ3J1Yl91 aW50MzJfdCB0eXBlOwotfSBHUlVCX1BBQ0tFRDsKLQogCiAvKiBIZWxwZXIgZm9yIHByZWJvb3Qu ICAqLwogc3RhdGljIGludCBmaWxsX2hvb2sgKGdydWJfdWludDY0X3QgYWRkciwgZ3J1Yl91aW50 NjRfdCBzaXplLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2kzODYvbWVtb3J5LmggYi9pbmNs dWRlL2dydWIvaTM4Ni9tZW1vcnkuaAppbmRleCA4YmI2ZTFjYmIuLjVjYjYwN2ZiNCAxMDA2NDQK LS0tIGEvaW5jbHVkZS9ncnViL2kzODYvbWVtb3J5LmgKKysrIGIvaW5jbHVkZS9ncnViL2kzODYv bWVtb3J5LmgKQEAgLTQ0LDYgKzQ0LDEzIEBACiAKICNpbmNsdWRlIDxncnViL3R5cGVzLmg+CiAK K3N0cnVjdCBncnViX2U4MjBfbW1hcF9lbnRyeQoreworICBncnViX3VpbnQ2NF90IGFkZHI7Cisg IGdydWJfdWludDY0X3QgbGVuOworICBncnViX3VpbnQzMl90IHR5cGU7Cit9IEdSVUJfUEFDS0VE OworCiBncnViX3VpbnQ2NF90IGdydWJfbW1hcF9nZXRfdXBwZXIgKHZvaWQpOwogZ3J1Yl91aW50 NjRfdCBncnViX21tYXBfZ2V0X2xvd2VyICh2b2lkKTsKIGdydWJfdWludDY0X3QgZ3J1Yl9tbWFw X2dldF9wb3N0NjQgKHZvaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2kzODYvcGMvaW50 LmggYi9pbmNsdWRlL2dydWIvaTM4Ni9wYy9pbnQuaAppbmRleCAxNmE1M2U0ZmUuLmE2MDEwNDAw MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ncnViL2kzODYvcGMvaW50LmgKKysrIGIvaW5jbHVkZS9n cnViL2kzODYvcGMvaW50LmgKQEAgLTIwLDQ1ICsyMCwxMSBAQAogI2RlZmluZSBHUlVCX0lOVEVS UlVQVF9NQUNISU5FX0hFQURFUgkxCiAKICNpbmNsdWRlIDxncnViL3N5bWJvbC5oPgotI2luY2x1 ZGUgPGdydWIvdHlwZXMuaD4KLQotc3RydWN0IGdydWJfYmlvc19pbnRfcmVnaXN0ZXJzCi17Ci0g IGdydWJfdWludDMyX3QgZWF4OwotICBncnViX3VpbnQxNl90IGVzOwotICBncnViX3VpbnQxNl90 IGRzOwotICBncnViX3VpbnQxNl90IGZsYWdzOwotICBncnViX3VpbnQxNl90IGR1bW15OwotICBn cnViX3VpbnQzMl90IGVieDsKLSAgZ3J1Yl91aW50MzJfdCBlY3g7Ci0gIGdydWJfdWludDMyX3Qg ZWRpOwotICBncnViX3VpbnQzMl90IGVzaTsKLSAgZ3J1Yl91aW50MzJfdCBlZHg7Ci19OwotCi0j ZGVmaW5lICBHUlVCX0NQVV9JTlRfRkxBR1NfQ0FSUlkgICAgIDB4MQotI2RlZmluZSAgR1JVQl9D UFVfSU5UX0ZMQUdTX1BBUklUWSAgICAweDQKLSNkZWZpbmUgIEdSVUJfQ1BVX0lOVF9GTEFHU19B REpVU1QgICAgMHgxMAotI2RlZmluZSAgR1JVQl9DUFVfSU5UX0ZMQUdTX1pFUk8gICAgICAweDQw Ci0jZGVmaW5lICBHUlVCX0NQVV9JTlRfRkxBR1NfU0lHTiAgICAgIDB4ODAKLSNkZWZpbmUgIEdS VUJfQ1BVX0lOVF9GTEFHU19UUkFQICAgICAgMHgxMDAKLSNkZWZpbmUgIEdSVUJfQ1BVX0lOVF9G TEFHU19JTlRFUlJVUFQgMHgyMDAKLSNkZWZpbmUgIEdSVUJfQ1BVX0lOVF9GTEFHU19ESVJFQ1RJ T04gMHg0MDAKLSNkZWZpbmUgIEdSVUJfQ1BVX0lOVF9GTEFHU19PVkVSRkxPVyAgMHg4MDAKLSNp ZmRlZiBHUlVCX01BQ0hJTkVfUENCSU9TCi0jZGVmaW5lICBHUlVCX0NQVV9JTlRfRkxBR1NfREVG QVVMVCAgIEdSVUJfQ1BVX0lOVF9GTEFHU19JTlRFUlJVUFQKLSNlbHNlCi0jZGVmaW5lICBHUlVC X0NQVV9JTlRfRkxBR1NfREVGQVVMVCAgIDAKLSNlbmRpZgorI2luY2x1ZGUgPGdydWIvaTM4Ni9w Yy9pbnRfdHlwZXMuaD4KIAogdm9pZCBFWFBPUlRfRlVOQyAoZ3J1Yl9iaW9zX2ludGVycnVwdCkg KGdydWJfdWludDhfdCBpbnRubywKIAkJCQkJc3RydWN0IGdydWJfYmlvc19pbnRfcmVnaXN0ZXJz ICpyZWdzKQogICAgICBfX2F0dHJpYnV0ZV9fICgocmVncGFybSgzKSkpOwotc3RydWN0IGdydWJf aTM4Nl9pZHQKLXsKLSAgZ3J1Yl91aW50MTZfdCBsaW1pdDsKLSAgZ3J1Yl91aW50MzJfdCBiYXNl OwotfSBHUlVCX1BBQ0tFRDsKIAogI2lmZGVmIEdSVUJfTUFDSElORV9QQ0JJT1MKIGV4dGVybiBz dHJ1Y3QgZ3J1Yl9pMzg2X2lkdCAqRVhQT1JUX1ZBUihncnViX3JlYWxpZHQpOwpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9ncnViL2kzODYvcGMvaW50X3R5cGVzLmggYi9pbmNsdWRlL2dydWIvaTM4Ni9w Yy9pbnRfdHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjM1YTRi NTA4NwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZ3J1Yi9pMzg2L3BjL2ludF90eXBlcy5o CkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiAgR1JVQiAgLS0gIEdSYW5kIFVuaWZpZWQgQm9vdGxv YWRlcgorICogIENvcHlyaWdodCAoQykgMjAxOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisgKgorICogIEdSVUIgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBHUlVCIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIEdSVUIuICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2lmbmRlZiBHUlVCX0lOVEVSUlVQVF9U WVBFU19NQUNISU5FX0hFQURFUgorI2RlZmluZSBHUlVCX0lOVEVSUlVQVF9UWVBFU19NQUNISU5F X0hFQURFUgkxCisKKyNpbmNsdWRlIDxncnViL3R5cGVzLmg+CisKK3N0cnVjdCBncnViX2Jpb3Nf aW50X3JlZ2lzdGVycworeworICBncnViX3VpbnQzMl90IGVheDsKKyAgZ3J1Yl91aW50MTZfdCBl czsKKyAgZ3J1Yl91aW50MTZfdCBkczsKKyAgZ3J1Yl91aW50MTZfdCBmbGFnczsKKyAgZ3J1Yl91 aW50MTZfdCBkdW1teTsKKyAgZ3J1Yl91aW50MzJfdCBlYng7CisgIGdydWJfdWludDMyX3QgZWN4 OworICBncnViX3VpbnQzMl90IGVkaTsKKyAgZ3J1Yl91aW50MzJfdCBlc2k7CisgIGdydWJfdWlu dDMyX3QgZWR4OworfTsKKworI2RlZmluZSAgR1JVQl9DUFVfSU5UX0ZMQUdTX0NBUlJZICAgICAw eDEKKyNkZWZpbmUgIEdSVUJfQ1BVX0lOVF9GTEFHU19QQVJJVFkgICAgMHg0CisjZGVmaW5lICBH UlVCX0NQVV9JTlRfRkxBR1NfQURKVVNUICAgIDB4MTAKKyNkZWZpbmUgIEdSVUJfQ1BVX0lOVF9G TEFHU19aRVJPICAgICAgMHg0MAorI2RlZmluZSAgR1JVQl9DUFVfSU5UX0ZMQUdTX1NJR04gICAg ICAweDgwCisjZGVmaW5lICBHUlVCX0NQVV9JTlRfRkxBR1NfVFJBUCAgICAgIDB4MTAwCisjZGVm aW5lICBHUlVCX0NQVV9JTlRfRkxBR1NfSU5URVJSVVBUIDB4MjAwCisjZGVmaW5lICBHUlVCX0NQ VV9JTlRfRkxBR1NfRElSRUNUSU9OIDB4NDAwCisjZGVmaW5lICBHUlVCX0NQVV9JTlRfRkxBR1Nf T1ZFUkZMT1cgIDB4ODAwCisjaWZkZWYgR1JVQl9NQUNISU5FX1BDQklPUworI2RlZmluZSAgR1JV Ql9DUFVfSU5UX0ZMQUdTX0RFRkFVTFQgICBHUlVCX0NQVV9JTlRfRkxBR1NfSU5URVJSVVBUCisj ZWxzZQorI2RlZmluZSAgR1JVQl9DUFVfSU5UX0ZMQUdTX0RFRkFVTFQgICAwCisjZW5kaWYKKwor c3RydWN0IGdydWJfaTM4Nl9pZHQKK3sKKyAgZ3J1Yl91aW50MTZfdCBsaW1pdDsKKyAgZ3J1Yl91 aW50MzJfdCBiYXNlOworfSBHUlVCX1BBQ0tFRDsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNs dWRlL2dydWIvaTM4Ni90c2MuaCBiL2luY2x1ZGUvZ3J1Yi9pMzg2L3RzYy5oCmluZGV4IGEwYWEy YzU3My4uMzI0MTc0ZGVkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIvaTM4Ni90c2MuaAorKysg Yi9pbmNsdWRlL2dydWIvaTM4Ni90c2MuaApAQCAtNTQsNyArNTQsNyBAQCBncnViX2dldF90c2Mg KHZvaWQpCiBzdGF0aWMgX19pbmxpbmUgaW50CiBncnViX2NwdV9pc190c2Nfc3VwcG9ydGVkICh2 b2lkKQogewotI2lmbmRlZiBHUlVCX01BQ0hJTkVfWEVOCisjaWYgIWRlZmluZWQoR1JVQl9NQUNI SU5FX1hFTikgJiYgIWRlZmluZWQoR1JVQl9NQUNISU5FX1hFTl9QVkgpCiAgIGdydWJfdWludDMy X3QgYSxiLGMsZDsKICAgaWYgKCEgZ3J1Yl9jcHVfaXNfY3B1aWRfc3VwcG9ydGVkICgpKQogICAg IHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2kzODYveGVuL2h5cGVyY2FsbC5o IGIvaW5jbHVkZS9ncnViL2kzODYveGVuL2h5cGVyY2FsbC5oCmluZGV4IDE5OGVlOTRhZi4uNGU0 YzEyYTQ5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIvaTM4Ni94ZW4vaHlwZXJjYWxsLmgKKysr IGIvaW5jbHVkZS9ncnViL2kzODYveGVuL2h5cGVyY2FsbC5oCkBAIC0yNiw3ICsyNiwxMCBAQCBF WFBPUlRfRlVOQyAoZ3J1Yl94ZW5faHlwZXJjYWxsKSAoZ3J1Yl91aW50MzJfdCBjYWxsbm8sIGdy dWJfdWludDMyX3QgYTAsCiAJCQkJICBncnViX3VpbnQzMl90IGExLCBncnViX3VpbnQzMl90IGEy LAogCQkJCSAgZ3J1Yl91aW50MzJfdCBhMywgZ3J1Yl91aW50MzJfdCBhNCwKIAkJCQkgIGdydWJf dWludDMyX3QgYTUpCi1fX2F0dHJpYnV0ZV9fICgocmVncGFybSAoMyksIGNkZWNsKSk7CisjaWZk ZWYgR1JVQl9NQUNISU5FX1hFTgorICBfX2F0dHJpYnV0ZV9fICgocmVncGFybSAoMyksIGNkZWNs KSkKKyNlbmRpZgorICA7CiAKIHN0YXRpYyBpbmxpbmUgaW50CiBncnViX3hlbl9zY2hlZF9vcCAo aW50IGNtZCwgdm9pZCAqYXJnKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2tlcm5lbC5oIGIv aW5jbHVkZS9ncnViL2tlcm5lbC5oCmluZGV4IGVjZDg4Y2E3Mi4uMTMzYTM3YzhkIDEwMDY0NAot LS0gYS9pbmNsdWRlL2dydWIva2VybmVsLmgKKysrIGIvaW5jbHVkZS9ncnViL2tlcm5lbC5oCkBA IC03OSw3ICs3OSw5IEBAIHN0cnVjdCBncnViX21vZHVsZV9pbmZvNjQKICNpZiBkZWZpbmVkIChH UlVCX01BQ0hJTkVfUENCSU9TKSB8fCBkZWZpbmVkIChHUlVCX01BQ0hJTkVfQ09SRUJPT1QpIFwK ICAgfHwgZGVmaW5lZCAoR1JVQl9NQUNISU5FX01VTFRJQk9PVCkgfHwgZGVmaW5lZCAoR1JVQl9N QUNISU5FX01JUFNfUUVNVV9NSVBTKSBcCiAgIHx8IGRlZmluZWQgKEdSVUJfTUFDSElORV9NSVBT X0xPT05HU09OKSB8fCBkZWZpbmVkIChHUlVCX01BQ0hJTkVfQVJDKSBcCi0gIHx8IChkZWZpbmVk IChfX3NwYXJjX18pICYmIGRlZmluZWQgKEdSVUJfTUFDSElORV9JRUVFMTI3NSkpIHx8IGRlZmlu ZWQgKEdSVUJfTUFDSElORV9VQk9PVCkgfHwgZGVmaW5lZCAoR1JVQl9NQUNISU5FX1hFTikKKyAg fHwgKGRlZmluZWQgKF9fc3BhcmNfXykgJiYgZGVmaW5lZCAoR1JVQl9NQUNISU5FX0lFRUUxMjc1 KSkgXAorICB8fCBkZWZpbmVkIChHUlVCX01BQ0hJTkVfVUJPT1QpIHx8IGRlZmluZWQgKEdSVUJf TUFDSElORV9YRU4pIFwKKyAgfHwgZGVmaW5lZChHUlVCX01BQ0hJTkVfWEVOX1BWSCkKIC8qIEZJ WE1FOiBzdGFjayBpcyBiZXR3ZWVuIDIgaGVhcCByZWdpb25zLiBNb3ZlIGl0LiAgKi8KICNkZWZp bmUgR1JVQl9LRVJORUxfUFJFTE9BRF9TUEFDRV9SRVVTQUJMRSAxCiAjZW5kaWYKLS0gCjIuMTYu NAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v bGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1gIYwg-0007Ye-8o for mharc-grub-devel@gnu.org; Fri, 02 Nov 2018 08:53:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43725) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gIYwU-0005VL-GS for grub-devel@gnu.org; Fri, 02 Nov 2018 08:52:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gIYhu-00052E-Mj for grub-devel@gnu.org; Fri, 02 Nov 2018 08:37:49 -0400 Received: from mx2.suse.de ([195.135.220.15]:50032 helo=mx1.suse.de) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gIYhu-0004vF-3s for grub-devel@gnu.org; Fri, 02 Nov 2018 08:37:46 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 17308ADD4; Fri, 2 Nov 2018 12:37:42 +0000 (UTC) From: Juergen Gross To: grub-devel@gnu.org Cc: xen-devel@lists.xen.org, phcoder@gmail.com, daniel.kiper@oracle.com, hans@knorrie.org, Juergen Gross Subject: [PATCH v4 04/19] xen: prepare common code for Xen PVH support Date: Fri, 2 Nov 2018 13:37:23 +0100 Message-Id: <20181102123738.16395-5-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20181102123738.16395-1-jgross@suse.com> References: <20181102123738.16395-1-jgross@suse.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] X-Received-From: 195.135.220.15 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Nov 2018 12:52:57 -0000 Some common code needs to be special cased for Xen PVH mode. This hits mostly Xen PV mode specific areas. Split include/grub/i386/pc/int_types.h off from include/grub/i386/pc/int.h to support including this file later from xen_pvh code without the grub_bios_interrupt definition. Move definition of struct grub_e820_mmap_entry from grub-core/mmap/i386/pc/mmap.c to include/grub/i386/memory.h in order to make it usable from xen_pvh code. Signed-off-by: Juergen Gross --- V3: GRUB_MACHINE_XENPVH -> GRUB_MACHINE_XEN_PVH (Daniel Kiper) split include/grub/i386/pc/int.h (Daniel Kiper) move struct grub_e820_mmap_entry definition to header file --- grub-core/kern/i386/tsc.c | 2 +- grub-core/mmap/i386/pc/mmap.c | 7 ----- include/grub/i386/memory.h | 7 +++++ include/grub/i386/pc/int.h | 36 +----------------------- include/grub/i386/pc/int_types.h | 59 +++++++++++++++++++++++++++++++++++++++ include/grub/i386/tsc.h | 2 +- include/grub/i386/xen/hypercall.h | 5 +++- include/grub/kernel.h | 4 ++- 8 files changed, 76 insertions(+), 46 deletions(-) create mode 100644 include/grub/i386/pc/int_types.h diff --git a/grub-core/kern/i386/tsc.c b/grub-core/kern/i386/tsc.c index f266eb131..9293b161d 100644 --- a/grub-core/kern/i386/tsc.c +++ b/grub-core/kern/i386/tsc.c @@ -65,7 +65,7 @@ grub_tsc_init (void) tsc_boot_time = grub_get_tsc (); -#ifdef GRUB_MACHINE_XEN +#if defined (GRUB_MACHINE_XEN) || defined (GRUB_MACHINE_XEN_PVH) (void) (grub_tsc_calibrate_from_xen () || calibrate_tsc_hardcode()); #elif defined (GRUB_MACHINE_EFI) (void) (grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_pit () || grub_tsc_calibrate_from_efi() || calibrate_tsc_hardcode()); diff --git a/grub-core/mmap/i386/pc/mmap.c b/grub-core/mmap/i386/pc/mmap.c index 609994516..bcb097c38 100644 --- a/grub-core/mmap/i386/pc/mmap.c +++ b/grub-core/mmap/i386/pc/mmap.c @@ -42,13 +42,6 @@ extern grub_uint16_t grub_machine_mmaphook_kblow; extern grub_uint16_t grub_machine_mmaphook_kbin16mb; extern grub_uint16_t grub_machine_mmaphook_64kbin4gb; -struct grub_e820_mmap_entry -{ - grub_uint64_t addr; - grub_uint64_t len; - grub_uint32_t type; -} GRUB_PACKED; - /* Helper for preboot. */ static int fill_hook (grub_uint64_t addr, grub_uint64_t size, diff --git a/include/grub/i386/memory.h b/include/grub/i386/memory.h index 8bb6e1cbb..5cb607fb4 100644 --- a/include/grub/i386/memory.h +++ b/include/grub/i386/memory.h @@ -44,6 +44,13 @@ #include +struct grub_e820_mmap_entry +{ + grub_uint64_t addr; + grub_uint64_t len; + grub_uint32_t type; +} GRUB_PACKED; + grub_uint64_t grub_mmap_get_upper (void); grub_uint64_t grub_mmap_get_lower (void); grub_uint64_t grub_mmap_get_post64 (void); diff --git a/include/grub/i386/pc/int.h b/include/grub/i386/pc/int.h index 16a53e4fe..a60104001 100644 --- a/include/grub/i386/pc/int.h +++ b/include/grub/i386/pc/int.h @@ -20,45 +20,11 @@ #define GRUB_INTERRUPT_MACHINE_HEADER 1 #include -#include - -struct grub_bios_int_registers -{ - grub_uint32_t eax; - grub_uint16_t es; - grub_uint16_t ds; - grub_uint16_t flags; - grub_uint16_t dummy; - grub_uint32_t ebx; - grub_uint32_t ecx; - grub_uint32_t edi; - grub_uint32_t esi; - grub_uint32_t edx; -}; - -#define GRUB_CPU_INT_FLAGS_CARRY 0x1 -#define GRUB_CPU_INT_FLAGS_PARITY 0x4 -#define GRUB_CPU_INT_FLAGS_ADJUST 0x10 -#define GRUB_CPU_INT_FLAGS_ZERO 0x40 -#define GRUB_CPU_INT_FLAGS_SIGN 0x80 -#define GRUB_CPU_INT_FLAGS_TRAP 0x100 -#define GRUB_CPU_INT_FLAGS_INTERRUPT 0x200 -#define GRUB_CPU_INT_FLAGS_DIRECTION 0x400 -#define GRUB_CPU_INT_FLAGS_OVERFLOW 0x800 -#ifdef GRUB_MACHINE_PCBIOS -#define GRUB_CPU_INT_FLAGS_DEFAULT GRUB_CPU_INT_FLAGS_INTERRUPT -#else -#define GRUB_CPU_INT_FLAGS_DEFAULT 0 -#endif +#include void EXPORT_FUNC (grub_bios_interrupt) (grub_uint8_t intno, struct grub_bios_int_registers *regs) __attribute__ ((regparm(3))); -struct grub_i386_idt -{ - grub_uint16_t limit; - grub_uint32_t base; -} GRUB_PACKED; #ifdef GRUB_MACHINE_PCBIOS extern struct grub_i386_idt *EXPORT_VAR(grub_realidt); diff --git a/include/grub/i386/pc/int_types.h b/include/grub/i386/pc/int_types.h new file mode 100644 index 000000000..35a4b5087 --- /dev/null +++ b/include/grub/i386/pc/int_types.h @@ -0,0 +1,59 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2018 Free Software Foundation, Inc. + * + * GRUB is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GRUB is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GRUB. If not, see . + */ + +#ifndef GRUB_INTERRUPT_TYPES_MACHINE_HEADER +#define GRUB_INTERRUPT_TYPES_MACHINE_HEADER 1 + +#include + +struct grub_bios_int_registers +{ + grub_uint32_t eax; + grub_uint16_t es; + grub_uint16_t ds; + grub_uint16_t flags; + grub_uint16_t dummy; + grub_uint32_t ebx; + grub_uint32_t ecx; + grub_uint32_t edi; + grub_uint32_t esi; + grub_uint32_t edx; +}; + +#define GRUB_CPU_INT_FLAGS_CARRY 0x1 +#define GRUB_CPU_INT_FLAGS_PARITY 0x4 +#define GRUB_CPU_INT_FLAGS_ADJUST 0x10 +#define GRUB_CPU_INT_FLAGS_ZERO 0x40 +#define GRUB_CPU_INT_FLAGS_SIGN 0x80 +#define GRUB_CPU_INT_FLAGS_TRAP 0x100 +#define GRUB_CPU_INT_FLAGS_INTERRUPT 0x200 +#define GRUB_CPU_INT_FLAGS_DIRECTION 0x400 +#define GRUB_CPU_INT_FLAGS_OVERFLOW 0x800 +#ifdef GRUB_MACHINE_PCBIOS +#define GRUB_CPU_INT_FLAGS_DEFAULT GRUB_CPU_INT_FLAGS_INTERRUPT +#else +#define GRUB_CPU_INT_FLAGS_DEFAULT 0 +#endif + +struct grub_i386_idt +{ + grub_uint16_t limit; + grub_uint32_t base; +} GRUB_PACKED; + +#endif diff --git a/include/grub/i386/tsc.h b/include/grub/i386/tsc.h index a0aa2c573..324174ded 100644 --- a/include/grub/i386/tsc.h +++ b/include/grub/i386/tsc.h @@ -54,7 +54,7 @@ grub_get_tsc (void) static __inline int grub_cpu_is_tsc_supported (void) { -#ifndef GRUB_MACHINE_XEN +#if !defined(GRUB_MACHINE_XEN) && !defined(GRUB_MACHINE_XEN_PVH) grub_uint32_t a,b,c,d; if (! grub_cpu_is_cpuid_supported ()) return 0; diff --git a/include/grub/i386/xen/hypercall.h b/include/grub/i386/xen/hypercall.h index 198ee94af..4e4c12a49 100644 --- a/include/grub/i386/xen/hypercall.h +++ b/include/grub/i386/xen/hypercall.h @@ -26,7 +26,10 @@ EXPORT_FUNC (grub_xen_hypercall) (grub_uint32_t callno, grub_uint32_t a0, grub_uint32_t a1, grub_uint32_t a2, grub_uint32_t a3, grub_uint32_t a4, grub_uint32_t a5) -__attribute__ ((regparm (3), cdecl)); +#ifdef GRUB_MACHINE_XEN + __attribute__ ((regparm (3), cdecl)) +#endif + ; static inline int grub_xen_sched_op (int cmd, void *arg) diff --git a/include/grub/kernel.h b/include/grub/kernel.h index ecd88ca72..133a37c8d 100644 --- a/include/grub/kernel.h +++ b/include/grub/kernel.h @@ -79,7 +79,9 @@ struct grub_module_info64 #if defined (GRUB_MACHINE_PCBIOS) || defined (GRUB_MACHINE_COREBOOT) \ || defined (GRUB_MACHINE_MULTIBOOT) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS) \ || defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_ARC) \ - || (defined (__sparc__) && defined (GRUB_MACHINE_IEEE1275)) || defined (GRUB_MACHINE_UBOOT) || defined (GRUB_MACHINE_XEN) + || (defined (__sparc__) && defined (GRUB_MACHINE_IEEE1275)) \ + || defined (GRUB_MACHINE_UBOOT) || defined (GRUB_MACHINE_XEN) \ + || defined(GRUB_MACHINE_XEN_PVH) /* FIXME: stack is between 2 heap regions. Move it. */ #define GRUB_KERNEL_PRELOAD_SPACE_REUSABLE 1 #endif -- 2.16.4