From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lan Tianyu Subject: [PATCH V2 9/25] tools/libxl: build DMAR table for a guest with one virtual VTD Date: Wed, 9 Aug 2017 16:34:10 -0400 Message-ID: <1502310866-10450-10-git-send-email-tianyu.lan@intel.com> References: <1502310866-10450-1-git-send-email-tianyu.lan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1502310866-10450-1-git-send-email-tianyu.lan@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Lan Tianyu , kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, julien.grall@arm.com, jbeulich@suse.com, Chao Gao List-Id: xen-devel@lists.xenproject.org RnJvbTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KCkEgbmV3IGxvZ2ljIGlzIGFkZGVk IHRvIGJ1aWxkIEFDUEkgRE1BUiB0YWJsZSBpbiB0b29sIHN0YWNrIGZvciBhIGd1ZXN0CndpdGgg b25lIHZpcnR1YWwgVlREIGFuZCBwYXNzIHRocm91Z2ggaXQgdG8gZ3Vlc3QgdmlhIGV4aXN0aW5n IG1lY2hhbmlzbS4gSWYKdGhlcmUgYWxyZWFkeSBhcmUgQUNQSSB0YWJsZXMgbmVlZGVkIHRvIHBh c3MgdGhyb3VnaCwgd2Ugam9pbnQgdGhlIHRhYmxlcy4KClNpZ25lZC1vZmYtYnk6IENoYW8gR2Fv IDxjaGFvLmdhb0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IExhbiBUaWFueXUgPHRpYW55dS5s YW5AaW50ZWwuY29tPgotLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2FyY2guaCAgICAgfCAgNSArKysr KwogdG9vbHMvbGlieGwvbGlieGxfZG9tLmMgICAgICB8IDM2ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogdG9vbHMvbGlieGwvbGlieGxfeDg2X2FjcGkuYyB8IDQ4ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDg5 IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9hcmNoLmggYi90 b29scy9saWJ4bC9saWJ4bF9hcmNoLmgKaW5kZXggNWUxZmM2MC4uZDhkZGQ2MCAxMDA2NDQKLS0t IGEvdG9vbHMvbGlieGwvbGlieGxfYXJjaC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2FyY2gu aApAQCAtNzgsNiArNzgsMTEgQEAgaW50IGxpYnhsX19hcmNoX2V4dHJhX21lbW9yeShsaWJ4bF9f Z2MgKmdjLAogaW50IGxpYnhsX19kb21fbG9hZF9hY3BpKGxpYnhsX19nYyAqZ2MsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfZG9tYWluX2J1aWxkX2luZm8gKmJfaW5mbywK ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pOworCitp bnQgbGlieGxfX2RvbV9idWlsZF9kbWFyKGxpYnhsX19nYyAqZ2MsCisgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICpiX2luZm8sCisgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgdm9pZCAqKmRhdGEsIGludCAqbGVuKTsKICNlbmRpZgogCiAjZW5kaWYK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jIGIvdG9vbHMvbGlieGwvbGlieGxf ZG9tLmMKaW5kZXggZjU0ZmQ0OS4uOTRjOTE5NiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGli eGxfZG9tLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMKQEAgLTEwNjAsNiArMTA2MCw0 MiBAQCBzdGF0aWMgaW50IGxpYnhsX19kb21haW5fZmlybXdhcmUobGlieGxfX2djICpnYywKICAg ICAgICAgfQogICAgIH0KIAorICAgIC8qCisgICAgICogSWYgYSBndWVzdCBoYXMgb25lIHZpcnR1 YWwgVlRELCBidWlsZCBETUFSIHRhYmxlIGZvciBpdCBhbmQgam9pbnQgdGhpcworICAgICAqIHRh YmxlIHdpdGggZXhpc3RpbmcgY29udGVudCBpbiBhY3BpX21vZHVsZXMgaW4gb3JkZXIgdG8gZW1w bG95IEhWTQorICAgICAqIGZpcm13YXJlIHBhc3MtdGhyb3VnaCBtZWNoYW5pc20gdG8gcGFzcy10 aHJvdWdoIERNQVIgdGFibGUuCisgICAgICovCisgICAgaWYgKGluZm8tPnZpb21tdS50eXBlID09 IExJQlhMX1ZJT01NVV9UWVBFX0lOVEVMX1ZURCkgeworICAgICAgICBkYXRhbGVuID0gMDsKKyAg ICAgICAgZSA9IGxpYnhsX19kb21fYnVpbGRfZG1hcihnYywgaW5mbywgZG9tLCAmZGF0YSwgJmRh dGFsZW4pOworICAgICAgICBpZiAoZSkgeworICAgICAgICAgICAgTE9HRVYoRVJST1IsIGUsICJm YWlsZWQgdG8gYnVpbGQgRE1BUiB0YWJsZSIpOworICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlM OworICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRhdGFsZW4p IHsKKyAgICAgICAgICAgIGxpYnhsX19wdHJfYWRkKGdjLCBkYXRhKTsKKyAgICAgICAgICAgIGlm ICghZG9tLT5hY3BpX21vZHVsZXNbMF0uZGF0YSkgeworICAgICAgICAgICAgICAgIGRvbS0+YWNw aV9tb2R1bGVzWzBdLmRhdGEgPSBkYXRhOworICAgICAgICAgICAgICAgIGRvbS0+YWNwaV9tb2R1 bGVzWzBdLmxlbmd0aCA9ICh1aW50MzJfdClkYXRhbGVuOworICAgICAgICAgICAgfSBlbHNlIHsK KyAgICAgICAgICAgICAgICAvKiBqb2ludCB0YWJsZXMgKi8KKyAgICAgICAgICAgICAgICB2b2lk ICpuZXdkYXRhOworICAgICAgICAgICAgICAgIG5ld2RhdGEgPSBtYWxsb2MoZGF0YWxlbiArIGRv bS0+YWNwaV9tb2R1bGVzWzBdLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgaWYgKCFuZXdkYXRh KSB7CisgICAgICAgICAgICAgICAgICAgIExPR0UoRVJST1IsICJmYWlsZWQgdG8gam9pbnQgRE1B UiB0YWJsZSB0byBhY3BpIG1vZHVsZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgcmMgPSBFUlJP Ul9GQUlMOworICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgbWVtY3B5KG5ld2RhdGEsIGRvbS0+YWNwaV9tb2R1bGVzWzBdLmRh dGEsCisgICAgICAgICAgICAgICAgICAgICAgIGRvbS0+YWNwaV9tb2R1bGVzWzBdLmxlbmd0aCk7 CisgICAgICAgICAgICAgICAgbWVtY3B5KG5ld2RhdGEgKyBkb20tPmFjcGlfbW9kdWxlc1swXS5s ZW5ndGgsIGRhdGEsIGRhdGFsZW4pOworICAgICAgICAgICAgICAgIGRvbS0+YWNwaV9tb2R1bGVz WzBdLmRhdGEgPSBuZXdkYXRhOworICAgICAgICAgICAgICAgIGRvbS0+YWNwaV9tb2R1bGVzWzBd Lmxlbmd0aCArPSAodWludDMyX3QpZGF0YWxlbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor ICAgIH0KKwogICAgIHJldHVybiAwOwogb3V0OgogICAgIGFzc2VydChyYyAhPSAwKTsKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3g4Nl9hY3BpLmMgYi90b29scy9saWJ4bC9saWJ4bF94 ODZfYWNwaS5jCmluZGV4IGMwYTZlMzIuLjFmYTk3ZmYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhs L2xpYnhsX3g4Nl9hY3BpLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfeDg2X2FjcGkuYwpAQCAt MTYsNiArMTYsNyBAQAogI2luY2x1ZGUgImxpYnhsX2FyY2guaCIKICNpbmNsdWRlIDx4ZW4vaHZt L2h2bV9pbmZvX3RhYmxlLmg+CiAjaW5jbHVkZSA8eGVuL2h2bS9lODIwLmg+CisjaW5jbHVkZSAi bGliYWNwaS9hY3BpMl8wLmgiCiAjaW5jbHVkZSAibGliYWNwaS9saWJhY3BpLmgiCiAKICNpbmNs dWRlIDx4Y19kb20uaD4KQEAgLTIzNiw2ICsyMzcsNTMgQEAgb3V0OgogICAgIHJldHVybiByYzsK IH0KIAorc3RhdGljIHZvaWQgKmFjcGlfbWVtYWxpZ24oc3RydWN0IGFjcGlfY3R4dCAqY3R4dCwg dWludDMyX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGFsaWdu KQoreworICAgIGludCByZXQ7CisgICAgdm9pZCAqcHRyOworCisgICAgcmV0ID0gcG9zaXhfbWVt YWxpZ24oJnB0ciwgYWxpZ24sIHNpemUpOworICAgIGlmIChyZXQgIT0gMCB8fCAhcHRyKQorICAg ICAgICByZXR1cm4gTlVMTDsKKworICAgIHJldHVybiBwdHI7Cit9CisKK2ludCBsaWJ4bF9fZG9t X2J1aWxkX2RtYXIobGlieGxfX2djICpnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgbGlieGxfZG9tYWluX2J1aWxkX2luZm8gKmJfaW5mbywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tLAorICAgICAgICAgICAgICAgICAgICAgICAg ICB2b2lkICoqZGF0YSwgaW50ICpsZW4pCit7CisgICAgc3RydWN0IGFjcGlfY29uZmlnIGNvbmZp ZyA9IHsgMCB9OworICAgIHN0cnVjdCBhY3BpX2N0eHQgY3R4dDsKKyAgICB2b2lkICp0YWJsZTsK KworICAgIGlmICgoYl9pbmZvLT50eXBlICE9IExJQlhMX0RPTUFJTl9UWVBFX0hWTSkgfHwKKyAg ICAgICAgKGJfaW5mby0+ZGV2aWNlX21vZGVsX3ZlcnNpb24gPT0gTElCWExfREVWSUNFX01PREVM X1ZFUlNJT05fTk9ORSkgfHwKKyAgICAgICAgKGJfaW5mby0+dmlvbW11LnR5cGUgIT0gTElCWExf VklPTU1VX1RZUEVfSU5URUxfVlREKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBjdHh0Lm1l bV9vcHMuYWxsb2MgPSBhY3BpX21lbWFsaWduOworICAgIGN0eHQubWVtX29wcy52MnAgPSB2aXJ0 X3RvX3BoeXM7CisgICAgY3R4dC5tZW1fb3BzLmZyZWUgPSBhY3BpX21lbV9mcmVlOworCisgICAg aWYgKGxpYnhsX2RlZmJvb2xfdmFsKGJfaW5mby0+dmlvbW11LmludHJlbWFwKSkKKyAgICAgICAg Y29uZmlnLmlvbW11X2ludHJlbWFwX3N1cHBvcnRlZCA9IHRydWU7CisgICAgaWYgKGxpYnhsX2Rl ZmJvb2xfdmFsKGJfaW5mby0+dmlvbW11LnUuaW50ZWxfdnRkLngyYXBpYykpCisgICAgICAgIGNv bmZpZy5pb21tdV94MmFwaWNfc3VwcG9ydGVkID0gdHJ1ZTsKKyAgICBjb25maWcuaW9tbXVfYmFz ZV9hZGRyID0gYl9pbmZvLT52aW9tbXUuYmFzZV9hZGRyOworCisgICAgY29uZmlnLmlvYXBpY19p ZCA9IDE7IC8qIHRoZSBJT0FQSUNfSUQgdXNlZCBieSBIVk0gKi8KKworICAgIHRhYmxlID0gY29u c3RydWN0X2RtYXIoJmN0eHQsICZjb25maWcpOworICAgIGlmICggIXRhYmxlICkKKyAgICAgICAg cmV0dXJuIEVSUk9SX05PTUVNOworICAgICpkYXRhID0gdGFibGU7CisgICAgKmxlbiA9ICgoc3Ry dWN0IGFjcGlfaGVhZGVyICopdGFibGUpLT5sZW5ndGg7CisgICAgcmV0dXJuIDA7Cit9CisKIC8q CiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCi0tIAoxLjguMy4xCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==