From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [RFC QEMU PATCH 2/8] xen-hvm: add a function to copy ACPI to guest Date: Mon, 10 Oct 2016 08:34:17 +0800 Message-ID: <20161010003423.4333-3-haozhong.zhang@intel.com> References: <20161010003423.4333-1-haozhong.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161010003423.4333-1-haozhong.zhang@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: qemu-devel@nongnu.org, xen-devel@lists.xensource.com Cc: Anthony Perard , Haozhong Zhang , Stefano Stabellini , Xiao Guangrong List-Id: xen-devel@lists.xenproject.org eGVuX2FjcGlfY29weV90b19ndWVzdCgpIHdpbGwgYmUgdXNlZCBsYXRlciB0byBjb3B5IE5WRElN TSBBQ1BJIHRvCmd1ZXN0LgoKU2lnbmVkLW9mZi1ieTogSGFvemhvbmcgWmhhbmcgPGhhb3pob25n LnpoYW5nQGludGVsLmNvbT4KLS0tCkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5p QGtlcm5lbC5vcmc+CkNjOiBBbnRob255IFBlcmFyZCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNv bT4KQ2M6IHhlbi1kZXZlbEBsaXN0cy54ZW5zb3VyY2UuY29tCi0tLQogaW5jbHVkZS9ody94ZW4v eGVuLmggfCAgIDYgKysKIHhlbi1odm0uYyAgICAgICAgICAgIHwgMTgwICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAx ODYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcveGVuL3hlbi5oIGIvaW5j bHVkZS9ody94ZW4veGVuLmgKaW5kZXggYThmM2FmYi4uNzkyNzNkYSAxMDA2NDQKLS0tIGEvaW5j bHVkZS9ody94ZW4veGVuLmgKKysrIGIvaW5jbHVkZS9ody94ZW4veGVuLmgKQEAgLTQ3LDQgKzQ3 LDEwIEBAIHZvaWQgeGVuX21vZGlmaWVkX21lbW9yeShyYW1fYWRkcl90IHN0YXJ0LCByYW1fYWRk cl90IGxlbmd0aCk7CiAKIHZvaWQgeGVuX3JlZ2lzdGVyX2ZyYW1lYnVmZmVyKHN0cnVjdCBNZW1v cnlSZWdpb24gKm1yKTsKIAorI2RlZmluZSBYRU5fQUNQSV9UQUJMRSAwCisjZGVmaW5lIFhFTl9B Q1BJX05TREVWIDEKKworaW50IHhlbl9hY3BpX2NvcHlfdG9fZ3Vlc3QoY29uc3QgY2hhciAqbmFt ZSwgY29uc3QgY2hhciAqZGF0YSwgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludCB0eXBlKTsKKwogI2VuZGlmIC8qIFFFTVVfSFdfWEVOX0ggKi8KZGlmZiAtLWdp dCBhL3hlbi1odm0uYyBiL3hlbi1odm0uYwppbmRleCAyZjM0OGVkLi4xNjhhOWVjIDEwMDY0NAot LS0gYS94ZW4taHZtLmMKKysrIGIveGVuLWh2bS5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVk ZSAic3lzZW11L2NoYXIuaCIKICNpbmNsdWRlICJxZW11L2Vycm9yLXJlcG9ydC5oIgogI2luY2x1 ZGUgInFlbXUvcmFuZ2UuaCIKKyNpbmNsdWRlICJxZW11L2N1dGlscy5oIgogI2luY2x1ZGUgInN5 c2VtdS94ZW4tbWFwY2FjaGUuaCIKICNpbmNsdWRlICJ0cmFjZS5oIgogI2luY2x1ZGUgImV4ZWMv YWRkcmVzcy1zcGFjZXMuaCIKQEAgLTM5LDYgKzQwLDEwIEBACiAgICAgZG8geyB9IHdoaWxlICgw KQogI2VuZGlmCiAKKyNkZWZpbmUgSFZNX1hTX0RNX0FDUElfUk9PVCAgICAgICAgICAgICAgIi9o dm1sb2FkZXIvZG0tYWNwaSIKKyNkZWZpbmUgSFZNX1hTX0RNX0FDUElfQUREUkVTUyAgICAgICAg ICAgSFZNX1hTX0RNX0FDUElfUk9PVCIvYWRkcmVzcyIKKyNkZWZpbmUgSFZNX1hTX0RNX0FDUElf TEVOR1RIICAgICAgICAgICAgSFZNX1hTX0RNX0FDUElfUk9PVCIvbGVuZ3RoIgorCiBzdGF0aWMg TWVtb3J5UmVnaW9uIHJhbV9tZW1vcnksIHJhbV82NDBrLCByYW1fbG8sIHJhbV9oaTsKIHN0YXRp YyBNZW1vcnlSZWdpb24gKmZyYW1lYnVmZmVyOwogc3RhdGljIGJvb2wgeGVuX2luX21pZ3JhdGlv bjsKQEAgLTg3LDYgKzkyLDE0IEBAIHR5cGVkZWYgc3RydWN0IFhlblBoeXNtYXAgewogICAgIFFM SVNUX0VOVFJZKFhlblBoeXNtYXApIGxpc3Q7CiB9IFhlblBoeXNtYXA7CiAKK3R5cGVkZWYgc3Ry dWN0IFhlbkFjcGlCdWYgeworICAgIHJhbV9hZGRyX3QgYmFzZTsKKyAgICByYW1fYWRkcl90IGxl bmd0aDsKKyAgICByYW1fYWRkcl90IHVzZWQ7Cit9IFhlbkFjcGlCdWY7CisKK3N0YXRpYyBYZW5B Y3BpQnVmICpndWVzdF9hY3BpX2J1ZjsKKwogdHlwZWRlZiBzdHJ1Y3QgWGVuSU9TdGF0ZSB7CiAg ICAgaW9zZXJ2aWRfdCBpb3NlcnZpZDsKICAgICBzaGFyZWRfaW9wYWdlX3QgKnNoYXJlZF9wYWdl OwpAQCAtMTExLDYgKzEyNCw4IEBAIHR5cGVkZWYgc3RydWN0IFhlbklPU3RhdGUgewogICAgIGh3 YWRkciBmcmVlX3BoeXNfb2Zmc2V0OwogICAgIGNvbnN0IFhlblBoeXNtYXAgKmxvZ19mb3JfZGly dHliaXQ7CiAKKyAgICBYZW5BY3BpQnVmIGFjcGlfYnVmOworCiAgICAgTm90aWZpZXIgZXhpdDsK ICAgICBOb3RpZmllciBzdXNwZW5kOwogICAgIE5vdGlmaWVyIHdha2V1cDsKQEAgLTExODEsNiAr MTE5Niw2NiBAQCBzdGF0aWMgdm9pZCB4ZW5fd2FrZXVwX25vdGlmaWVyKE5vdGlmaWVyICpub3Rp Zmllciwgdm9pZCAqZGF0YSkKICAgICB4Y19zZXRfaHZtX3BhcmFtKHhlbl94YywgeGVuX2RvbWlk LCBIVk1fUEFSQU1fQUNQSV9TX1NUQVRFLCAwKTsKIH0KIAorc3RhdGljIGludCBndWVzdF9hY3Bp X2J1Zl9pbml0KFhlbklPU3RhdGUgKnN0YXRlKQoreworICAgIGNoYXIgcGF0aFs4MF0sICp2YWx1 ZTsKKyAgICB1bnNpZ25lZCBpbnQgbGVuOworCisgICAgZ3Vlc3RfYWNwaV9idWYgPSAmc3RhdGUt PmFjcGlfYnVmOworCisgICAgc25wcmludGYocGF0aCwgc2l6ZW9mKHBhdGgpLAorICAgICAgICAg ICAgICIvbG9jYWwvZG9tYWluLyVkIkhWTV9YU19ETV9BQ1BJX0FERFJFU1MsIHhlbl9kb21pZCk7 CisgICAgdmFsdWUgPSB4c19yZWFkKHN0YXRlLT54ZW5zdG9yZSwgMCwgcGF0aCwgJmxlbik7Cisg ICAgaWYgKCF2YWx1ZSkgeworICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisgICAgaWYg KHFlbXVfc3RydG91bGwodmFsdWUsIE5VTEwsIDE2LCAmZ3Vlc3RfYWNwaV9idWYtPmJhc2UpKSB7 CisgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKworICAgIHNucHJpbnRmKHBhdGgsIHNp emVvZihwYXRoKSwKKyAgICAgICAgICAgICAiL2xvY2FsL2RvbWFpbi8lZCJIVk1fWFNfRE1fQUNQ SV9MRU5HVEgsIHhlbl9kb21pZCk7CisgICAgdmFsdWUgPSB4c19yZWFkKHN0YXRlLT54ZW5zdG9y ZSwgMCwgcGF0aCwgJmxlbik7CisgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICByZXR1cm4gLUVJ TlZBTDsKKyAgICB9CisgICAgaWYgKHFlbXVfc3RydG91bGwodmFsdWUsIE5VTEwsIDE2LCAmZ3Vl c3RfYWNwaV9idWYtPmxlbmd0aCkpIHsKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQor CisgICAgZ3Vlc3RfYWNwaV9idWYtPnVzZWQgPSAwOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0 YXRpYyByYW1fYWRkcl90IGd1ZXN0X2FjcGlfYnVmX2FsbG9jKHNpemVfdCBsZW5ndGgpCit7Cisg ICAgcmFtX2FkZHJfdCBhZGRyOworCisgICAgaWYgKGd1ZXN0X2FjcGlfYnVmLT5sZW5ndGggLSBn dWVzdF9hY3BpX2J1Zi0+dXNlZCA8IGxlbmd0aCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9 CisKKyAgICBhZGRyID0gZ3Vlc3RfYWNwaV9idWYtPmJhc2UgKyBndWVzdF9hY3BpX2J1Zi0+dXNl ZDsKKyAgICBndWVzdF9hY3BpX2J1Zi0+dXNlZCArPSBsZW5ndGg7CisKKyAgICByZXR1cm4gYWRk cjsKK30KKworc3RhdGljIGludCB4ZW5fYWNwaV9uZWVkZWQoUENNYWNoaW5lU3RhdGUgKnBjbXMp Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgeGVuX2FjcGlfaW5pdChQQ01hY2hp bmVTdGF0ZSAqcGNtcywgWGVuSU9TdGF0ZSAqc3RhdGUpCit7CisgICAgaWYgKCF4ZW5fYWNwaV9u ZWVkZWQocGNtcykpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIGd1 ZXN0X2FjcGlfYnVmX2luaXQoc3RhdGUpOworfQorCiB2b2lkIHhlbl9odm1faW5pdChQQ01hY2hp bmVTdGF0ZSAqcGNtcywgTWVtb3J5UmVnaW9uICoqcmFtX21lbW9yeSkKIHsKICAgICBpbnQgaSwg cmM7CkBAIC0xMzE2LDYgKzEzOTEsMTMgQEAgdm9pZCB4ZW5faHZtX2luaXQoUENNYWNoaW5lU3Rh dGUgKnBjbXMsIE1lbW9yeVJlZ2lvbiAqKnJhbV9tZW1vcnkpCiAgICAgfQogICAgIHhlbl9iZV9y ZWdpc3Rlcl9jb21tb24oKTsKICAgICB4ZW5fcmVhZF9waHlzbWFwKHN0YXRlKTsKKworICAgIC8q IEluaXRpYWxpemUgQUNQSSAqLworICAgIGlmICh4ZW5fYWNwaV9pbml0KHBjbXMsIHN0YXRlKSkg eworICAgICAgICBlcnJvcl9yZXBvcnQoImZhaWxlZCB0byBpbml0aWFsaXplIHhlbiBBQ1BJIik7 CisgICAgICAgIGdvdG8gZXJyOworICAgIH0KKwogICAgIHJldHVybjsKIAogZXJyOgpAQCAtMTM5 MiwzICsxNDc0LDEwMSBAQCB2b2lkIHFtcF94ZW5fc2V0X2dsb2JhbF9kaXJ0eV9sb2coYm9vbCBl bmFibGUsIEVycm9yICoqZXJycCkKICAgICAgICAgbWVtb3J5X2dsb2JhbF9kaXJ0eV9sb2dfc3Rv cCgpOwogICAgIH0KIH0KKworc3RhdGljIGludCB4c193cml0ZV9ndWVzdF9hY3BpX2Jsb2Jfa2V5 KGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqa2V5LCBjb25zdCBjaGFyICp2YWx1ZSkKK3sKKyAgICBYZW5JT1N0YXRl ICpzdGF0ZSA9IGNvbnRhaW5lcl9vZihndWVzdF9hY3BpX2J1ZiwgWGVuSU9TdGF0ZSwgYWNwaV9i dWYpOworICAgIGNoYXIgcGF0aFs4MF07CisKKyAgICBzbnByaW50ZihwYXRoLCBzaXplb2YocGF0 aCksCisgICAgICAgICAgICAgIi9sb2NhbC9kb21haW4vJWQiSFZNX1hTX0RNX0FDUElfUk9PVCIv JXMvJXMiLAorICAgICAgICAgICAgIHhlbl9kb21pZCwgbmFtZSwga2V5KTsKKyAgICBpZiAoIXhz X3dyaXRlKHN0YXRlLT54ZW5zdG9yZSwgMCwgcGF0aCwgdmFsdWUsIHN0cmxlbih2YWx1ZSkpKSB7 CisgICAgICAgIHJldHVybiAtRUlPOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0 aWMgc2l6ZV90IHhlbl9tZW1jcHlfdG9fZ3Vlc3QocmFtX2FkZHJfdCBncGEsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgbGVuZ3RoKQor eworICAgIHNpemVfdCBjb3BpZWQgPSAwLCBzaXplOworICAgIHJhbV9hZGRyX3QgcywgZSwgb2Zm c2V0LCBjdXIgPSBncGE7CisgICAgeGVuX3Bmbl90IGN1cl9wZm47CisgICAgdm9pZCAqcGFnZTsK KworICAgIGlmICghYnVmIHx8ICFsZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQor CisgICAgcyA9IGdwYSAmIFRBUkdFVF9QQUdFX01BU0s7CisgICAgZSA9IGdwYSArIGxlbmd0aDsK KyAgICBpZiAoZSA8IHMpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgd2hpbGUg KGN1ciA8IGUpIHsKKyAgICAgICAgY3VyX3BmbiA9IGN1ciA+PiBUQVJHRVRfUEFHRV9CSVRTOwor ICAgICAgICBvZmZzZXQgPSBjdXIgLSAoY3VyX3BmbiA8PCBUQVJHRVRfUEFHRV9CSVRTKTsKKyAg ICAgICAgc2l6ZSA9IChsZW5ndGggPj0gVEFSR0VUX1BBR0VfU0laRSAtIG9mZnNldCkgPworICAg ICAgICAgICAgICAgVEFSR0VUX1BBR0VfU0laRSAtIG9mZnNldCA6IGxlbmd0aDsKKworICAgICAg ICBwYWdlID0geGVuZm9yZWlnbm1lbW9yeV9tYXAoeGVuX2ZtZW0sIHhlbl9kb21pZCwgUFJPVF9S RUFEIHwgUFJPVF9XUklURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEs ICZjdXJfcGZuLCBOVUxMKTsKKyAgICAgICAgaWYgKCFwYWdlKSB7CisgICAgICAgICAgICBicmVh azsKKyAgICAgICAgfQorCisgICAgICAgIG1lbWNweShwYWdlICsgb2Zmc2V0LCBidWYsIHNpemUp OworICAgICAgICB4ZW5mb3JlaWdubWVtb3J5X3VubWFwKHhlbl9mbWVtLCBwYWdlLCAxKTsKKwor ICAgICAgICBjb3BpZWQgKz0gc2l6ZTsKKyAgICAgICAgYnVmICs9IHNpemU7CisgICAgICAgIGN1 ciArPSBzaXplOworICAgICAgICBsZW5ndGggLT0gc2l6ZTsKKyAgICB9CisKKyAgICByZXR1cm4g Y29waWVkOworfQorCitpbnQgeGVuX2FjcGlfY29weV90b19ndWVzdChjb25zdCBjaGFyICpuYW1l LCBjb25zdCBjaGFyICpkYXRhLCBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IHR5cGUpCit7CisgICAgY2hhciB2YWx1ZVsyMV07CisgICAgcmFtX2FkZHJfdCBi dWZfYWRkcjsKKyAgICBpbnQgcmM7CisKKyAgICBpZiAodHlwZSAhPSBYRU5fQUNQSV9UQUJMRSAm JiB0eXBlICE9IFhFTl9BQ1BJX05TREVWKSB7CisgICAgICAgIHJldHVybiAtRUlOVkFMOworICAg IH0KKworICAgIGJ1Zl9hZGRyID0gZ3Vlc3RfYWNwaV9idWZfYWxsb2MobGVuZ3RoKTsKKyAgICBp ZiAoIWJ1Zl9hZGRyKSB7CisgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgIH0KKyAgICBpZiAo eGVuX21lbWNweV90b19ndWVzdChidWZfYWRkciwgZGF0YSwgbGVuZ3RoKSAhPSBsZW5ndGgpIHsK KyAgICAgICAgcmV0dXJuIC1FSU87CisgICAgfQorCisgICAgc25wcmludGYodmFsdWUsIHNpemVv Zih2YWx1ZSksICIlZCIsIHR5cGUpOworICAgIHJjID0geHNfd3JpdGVfZ3Vlc3RfYWNwaV9ibG9i X2tleShuYW1lLCAidHlwZSIsIHZhbHVlKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgcmV0dXJu IHJjOworICAgIH0KKworICAgIHNucHJpbnRmKHZhbHVlLCBzaXplb2YodmFsdWUpLCAiJSJQUkl1 NjQsIGJ1Zl9hZGRyIC0gZ3Vlc3RfYWNwaV9idWYtPmJhc2UpOworICAgIHJjID0geHNfd3JpdGVf Z3Vlc3RfYWNwaV9ibG9iX2tleShuYW1lLCAib2Zmc2V0IiwgdmFsdWUpOworICAgIGlmIChyYykg eworICAgICAgICByZXR1cm4gcmM7CisgICAgfQorCisgICAgc25wcmludGYodmFsdWUsIHNpemVv Zih2YWx1ZSksICIlIlBSSXU2NCwgbGVuZ3RoKTsKKyAgICByYyA9IHhzX3dyaXRlX2d1ZXN0X2Fj cGlfYmxvYl9rZXkobmFtZSwgImxlbmd0aCIsIHZhbHVlKTsKKyAgICBpZiAocmMpIHsKKyAgICAg ICAgcmV0dXJuIHJjOworICAgIH0KKworICAgIHJldHVybiAwOworfQotLSAKMi4xMC4xCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==