From mboxrd@z Thu Jan 1 00:00:00 1970 From: manish.jaggi@linaro.org Subject: [RFC 10/11] IORT parsing functions to prepare requesterId maps Date: Tue, 2 Jan 2018 14:58:08 +0530 Message-ID: <20180102092809.1841-11-manish.jaggi@linaro.org> References: <20180102092809.1841-1-manish.jaggi@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eWIsi-0002mU-Cr for xen-devel@lists.xenproject.org; Tue, 02 Jan 2018 09:29:12 +0000 Received: by mail-pl0-x243.google.com with SMTP id s10so28314522plj.5 for ; Tue, 02 Jan 2018 01:29:10 -0800 (PST) In-Reply-To: <20180102092809.1841-1-manish.jaggi@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, julien.grall@linaro.org, sameer.goel@linaro.org, andre.przywara@linaro.org Cc: Manish Jaggi , manish.jaggi@cavium.com List-Id: xen-devel@lists.xenproject.org RnJvbTogTWFuaXNoIEphZ2dpIDxtYW5pc2guamFnZ2lAbGluYXJvLm9yZz4KClRoaXMgcGF0Y2gg YWRkcyBmdW5jdGlvbnMgdG8gcGFyc2UgdGhlIElPUlQgYW5kIHVzZSB0aGUgcmVxdWVzdGVySUQg cHVibGljIEFQSQp0byB1cGRhdGUgdGhlIG1hcHMuCgpTaWduZWQtb2ZmLWJ5OiBNYW5pc2ggamFn Z2kgPG1hbmlzaC5qYWdnaUBsaW5hcm8ub3JnPgotLS0KIHhlbi9kcml2ZXJzL2FjcGkvYXJtL2lv cnQuYyB8IDIwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MSBmaWxlIGNoYW5nZWQsIDIwMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGVuL2RyaXZl cnMvYWNwaS9hcm0vaW9ydC5jIGIveGVuL2RyaXZlcnMvYWNwaS9hcm0vaW9ydC5jCmluZGV4IGE0 N2VlMmRmNGMuLjAwYTlmMTgwNDYgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL2FjcGkvYXJtL2lv cnQuYworKysgYi94ZW4vZHJpdmVycy9hY3BpL2FybS9pb3J0LmMKQEAgLTM1Myw2ICszNTMsMjA1 IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmFjcGlfYWxsb2NfZndub2Rl X3N0YXRpYyh2b2lkKQogCXJldHVybiBmd25vZGU7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBf X211c3RfY2hlY2sgSVNfRVJSX09SX05VTEwoX19mb3JjZSBjb25zdCB2b2lkICpwdHIpCit7CisJ cmV0dXJuIHVubGlrZWx5KCFwdHIpIHx8IElTX0VSUl9WQUxVRSgodW5zaWduZWQgbG9uZylwdHIp OworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaXNfYWNwaV9zdGF0aWNfbm9kZShjb25zdCBzdHJ1 Y3QgZndub2RlX2hhbmRsZSAqZndub2RlKQoreworCXJldHVybiAhSVNfRVJSX09SX05VTEwoZndu b2RlKSAmJgorCQlmd25vZGUtPm9wcyA9PSAmYWNwaV9zdGF0aWNfZndub2RlX29wczsKK30KKwor c3RhdGljIGlubGluZSB2b2lkIGFjcGlfZnJlZV9md25vZGVfc3RhdGljKHN0cnVjdCBmd25vZGVf aGFuZGxlICpmd25vZGUpCit7CisJaWYgKFdBUk5fT04oIWlzX2FjcGlfc3RhdGljX25vZGUoZndu b2RlKSkpCisJCXJldHVybjsKKworCWtmcmVlKGZ3bm9kZSk7Cit9CitpbnQgZml4dXBfcmlkX2Rl dmljZWlkX21hcChzdHJ1Y3QgYWNwaV9pb3J0X25vZGUgKmlub2RlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGFjcGlfaW9ydF9pZF9tYXBwaW5nICpwY2lfaWRtYXAsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYWNwaV9pb3J0X25vZGUgKnNtbXVfbm9kZSkK K3sKKworCXVuc2lnbmVkIGludCBwX2lucHV0X2Jhc2UsIHBfb3V0cHV0X2Jhc2UsIHBfaWRfY291 bnQ7CisJdW5zaWduZWQgaW50IHNfaW5wdXRfYmFzZSwgc19vdXRwdXRfYmFzZSwgc19pZF9jb3Vu dDsKKwl1bnNpZ25lZCBpbnQgZGVsdGEsIGk7CisJaW50IHJldCA9IDA7CisJc3RydWN0IGFjcGlf aW9ydF9pZF9tYXBwaW5nICpzbW11X2lkbWFwID0gTlVMTDsKKwlzdHJ1Y3QgYWNwaV9pb3J0X25v ZGUgKml0c19ub2RlOworCXN0cnVjdCBhY3BpX3RhYmxlX2lvcnQgKmlvcnQ7CisKKwlpb3J0ID0g KHN0cnVjdCBhY3BpX3RhYmxlX2lvcnQqKSBpb3J0X3RhYmxlOworCisJcF9pbnB1dF9iYXNlID0g cGNpX2lkbWFwLT5pbnB1dF9iYXNlOworCXBfb3V0cHV0X2Jhc2UgPSBwY2lfaWRtYXAtPm91dHB1 dF9iYXNlOworCXBfaWRfY291bnQgPSBwY2lfaWRtYXAtPmlkX2NvdW50OworCisJc21tdV9pZG1h cCA9IChzdHJ1Y3QgYWNwaV9pb3J0X2lkX21hcHBpbmcqKSAoKHU4Kikgc21tdV9ub2RlICsKKwkJ ICAgICAgc21tdV9ub2RlLT5tYXBwaW5nX29mZnNldCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgc21t dV9ub2RlLT5tYXBwaW5nX2NvdW50OyBpKyssIHNtbXVfaWRtYXArKykgeworCQlzX2lucHV0X2Jh c2UgPSBzbW11X2lkbWFwLT5pbnB1dF9iYXNlOworCQlzX291dHB1dF9iYXNlID0gc21tdV9pZG1h cC0+b3V0cHV0X2Jhc2U7CisJCXNfaWRfY291bnQgPSBzbW11X2lkbWFwLT5pZF9jb3VudDsKKwkJ aXRzX25vZGUgPSBBQ1BJX0FERF9QVFIoc3RydWN0IGFjcGlfaW9ydF9ub2RlLCBpb3J0LAorCQkJ CSAgICAgICAgc21tdV9pZG1hcC0+b3V0cHV0X3JlZmVyZW5jZSk7CisKKwkJaWYgKHNfaW5wdXRf YmFzZSA8PSBwX291dHB1dF9iYXNlKSB7CisJCQlpbnQgY291bnQ7CisJCQlpZiAoc19pbnB1dF9i YXNlICsgc19pZF9jb3VudCA8IHBfb3V0cHV0X2Jhc2UpCisJCQkJY29udGludWU7CisKKwkJCWRl bHRhID0gcF9vdXRwdXRfYmFzZSAtIHNfaW5wdXRfYmFzZTsKKwkJCWNvdW50ID0gc19pbnB1dF9i YXNlICsgc19pZF9jb3VudCA8PSBwX291dHB1dF9iYXNlICsKKwkJCQlwX2lkX2NvdW50ID8gc19p ZF9jb3VudCAtIGRlbHRhIDogcF9pZF9jb3VudDsKKworCQkJcmV0ID0gYWRkX3JpZF9kZXZpY2Vp ZF9tYXAgKGlub2RlLCBpdHNfbm9kZSwKKwkJCQkJCSAgICBwX2lucHV0X2Jhc2UsCisJCQkJCQkg ICAgc19vdXRwdXRfYmFzZSArIGRlbHRhLAorCQkJCQkJICAgIGNvdW50KTsKKwkJCWlmIChyZXQp CisJCQkJcmV0dXJuIHJldDsKKwkJfSBlbHNlIHsKKwkJCWludCBjb3VudDsKKwkJCWlmIChwX291 dHB1dF9iYXNlICsgcF9pZF9jb3VudCA8IHNfaW5wdXRfYmFzZSkKKwkJCQljb250aW51ZTsKKwor CQkJZGVsdGEgPSBzX2lucHV0X2Jhc2UgLSBwX291dHB1dF9iYXNlOworCQkJY291bnQgPSBzX2lu cHV0X2Jhc2UgKyBzX2lkX2NvdW50IDwgcF9vdXRwdXRfYmFzZSArCisJCQkJcF9pZF9jb3VudCA/ IHNfaWRfY291bnQgOiBwX2lkX2NvdW50IC0gZGVsdGE7CisKKwkJCXJldCA9IGFkZF9yaWRfZGV2 aWNlaWRfbWFwIChpbm9kZSwgaXRzX25vZGUsCisJCQkJCQkgICAgcF9pbnB1dF9iYXNlICsgZGVs dGEsCisJCQkJCQkgICAgc19vdXRwdXRfYmFzZSwgY291bnQpOworCisJCQlpZiAocmV0KQorCQkJ CXJldHVybiByZXQ7CisJCX0KKwl9CisKKwlyZXR1cm4gcmV0OworfQorCit2b2lkIHBhcnNlX3Bj aXJjX25vZGUoc3RydWN0IGFjcGlfaW9ydF9ub2RlICppb3J0X25vZGUpCit7CisJaW50IGogLCBy ZXQ7CisJc3RydWN0IGFjcGlfaW9ydF9pZF9tYXBwaW5nICppZG1hcDsKKwlzdHJ1Y3QgYWNwaV9p b3J0X25vZGUgKm9ub2RlOworCXN0cnVjdCBhY3BpX3RhYmxlX2lvcnQgKmlvcnQ7CisKKwlpb3J0 ID0gKHN0cnVjdCBhY3BpX3RhYmxlX2lvcnQqKSBpb3J0X3RhYmxlOworCWlkbWFwID0gQUNQSV9B RERfUFRSKHN0cnVjdCBhY3BpX2lvcnRfaWRfbWFwcGluZywgaW9ydF9ub2RlLAorCQkJICAgICBp b3J0X25vZGUtPm1hcHBpbmdfb2Zmc2V0KTsKKworCS8qIGl0ZXJhdGUgb3ZlciBpZG1hcCAqLwor CWZvciAoIGogPSAwOyBqIDwgaW9ydF9ub2RlLT5tYXBwaW5nX2NvdW50OyBqKysgKSB7CisKKwkJ c3RydWN0IGFjcGlfaW9ydF9ub2RlICppdHNfbm9kZTsKKwkJc3RydWN0IGFjcGlfaW9ydF9ub2Rl ICpzbW11X25vZGU7CisJCW9ub2RlID0gQUNQSV9BRERfUFRSKHN0cnVjdCBhY3BpX2lvcnRfbm9k ZSwgaW9ydCwKKwkJCQkgICAgIGlkbWFwLT5vdXRwdXRfcmVmZXJlbmNlKTsKKworCQlzd2l0Y2gg KG9ub2RlLT50eXBlKSB7CisJCQljYXNlIEFDUElfSU9SVF9OT0RFX0lUU19HUk9VUDoKKworCQkJ CWl0c19ub2RlID0gQUNQSV9BRERfUFRSKHN0cnVjdCBhY3BpX2lvcnRfbm9kZSwgaW9ydCwKKwkJ CQkJCQlpZG1hcC0+b3V0cHV0X3JlZmVyZW5jZSk7CisKKwkJCQlyZXQgPSBhZGRfcmlkX2Rldmlj ZWlkX21hcChpb3J0X25vZGUsIGl0c19ub2RlLAorCQkJCQkJCSAgIGlkbWFwLT5pbnB1dF9iYXNl LAorCQkJCQkJCSAgIGlkbWFwLT5vdXRwdXRfYmFzZSwKKwkJCQkJCQkgICBpZG1hcC0+aWRfY291 bnQpOworCQkJCWlmIChyZXQpIHsKKwkJCQkJcHJfZXJyKCIlczogYWRkX3JpZF9kZXZpY2VpZF9t YXAiCisJCQkJCSAgICAgICAiZmFpbGVkIHdpdGggcmV0PSVkIFxyXG4iLAorCQkJCQkgICAgICAg X19mdW5jX18sIHJldCk7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCWJyZWFrOworCisJCQljYXNl IEFDUElfSU9SVF9OT0RFX1NNTVU6CisJCQljYXNlIEFDUElfSU9SVF9OT0RFX1NNTVVfVjM6CisK KwkJCQlzbW11X25vZGUgPSBBQ1BJX0FERF9QVFIoCisJCQkJCQlzdHJ1Y3QgYWNwaV9pb3J0X25v ZGUsCisJCQkJCQlpb3J0X3RhYmxlLAorCQkJCQkJaWRtYXAtPm91dHB1dF9yZWZlcmVuY2UpOwor CisJCQkJcmV0ID0gYWRkX3JpZF9zdHJlYW1pZF9tYXAoaW9ydF9ub2RlLAorCQkJCQkJCSAgIHNt bXVfbm9kZSwKKwkJCQkJCQkgICBpZG1hcC0+aW5wdXRfYmFzZSwKKwkJCQkJCQkgICBpZG1hcC0+ b3V0cHV0X2Jhc2UsCisJCQkJCQkJICAgaWRtYXAtPmlkX2NvdW50KTsKKwkJCQlpZiAocmV0KSB7 CisJCQkJCXByX2VycigiJXM6IGFkZF9yaWRfc3RyZWFtaWRfbWFwIgorCQkJCQkgICAgICAgImZh aWxlZCB3aXRoIHJldD0lZCBcclxuIiwKKwkJCQkJICAgICAgIF9fZnVuY19fLCByZXQpOworCQkJ CQlicmVhazsKKwkJCQl9CisKKwkJCQlyZXQgPSBmaXh1cF9yaWRfZGV2aWNlaWRfbWFwKGlvcnRf bm9kZSwgaWRtYXAsCisJCQkJCQkJICAgICBvbm9kZSk7CisJCQkJaWYgKHJldCkgeworCQkJCQlw cl9lcnIoIiVzOiBmaXh1cF9yaWRfZGV2aWNlaWRfbWFwIgorCQkJCQkgICAgICAgImZhaWxlZCB3 aXRoIHJldD0lZCBcclxuIiwKKwkJCQkJICAgICAgIF9fZnVuY19fLCByZXQpOworCQkJCQlicmVh azsKKwkJCQl9CisJCQlicmVhazsKKwkJfQorCQlpZG1hcCsrOworCX0KK30KKwordm9pZCBwYXJz ZV9zbW11X25vZGUoc3RydWN0IGFjcGlfaW9ydF9ub2RlICppb3J0X25vZGUpCit7CisJaW50IHJl dDsKKwlzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlOworCWZ3bm9kZSA9IGFjcGlfYWxsb2Nf Zndub2RlX3N0YXRpYygpOworCWlmICghZndub2RlKQorCQlyZXR1cm47CisKKwlpb3J0X3NldF9m d25vZGUoaW9ydF9ub2RlLCBmd25vZGUpOworCXJldCA9IGlvcnRfYWRkX3NtbXVfcGxhdGZvcm1f ZGV2aWNlKGlvcnRfbm9kZSk7CisJaWYgKHJldCkKKwkJYWNwaV9mcmVlX2Z3bm9kZV9zdGF0aWMo Zndub2RlKTsKK30KKwordm9pZCBwYXJzZV9pb3J0KHZvaWQpCit7CisJc3RydWN0IGFjcGlfaW9y dF9ub2RlICppb3J0X25vZGUsICppb3J0X2VuZDsKKwlzdHJ1Y3QgYWNwaV90YWJsZV9pb3J0ICpp b3J0OworCWludCBpOworCisJaW9ydCA9IChzdHJ1Y3QgYWNwaV90YWJsZV9pb3J0KikgaW9ydF90 YWJsZTsKKwlpb3J0X25vZGUgPSBBQ1BJX0FERF9QVFIoc3RydWN0IGFjcGlfaW9ydF9ub2RlLCBp b3J0LAorCQkJaW9ydC0+bm9kZV9vZmZzZXQpOworCWlvcnRfZW5kID0gQUNQSV9BRERfUFRSKHN0 cnVjdCBhY3BpX2lvcnRfbm9kZSwgaW9ydCwKKwkJCWlvcnQtPmhlYWRlci5sZW5ndGgpOworCWlu aXRfcmlkbWFwcygpOworCisJZm9yIChpID0gMDsgaSA8IGlvcnQtPm5vZGVfY291bnQ7IGkrKykg eworCQlpZiAoIGlvcnRfbm9kZSA+PSBpb3J0X2VuZCApIHsKKwkJCXByX2VycigiaW9ydCBub2Rl IHBvaW50ZXIgb3ZlcmZsb3dzLCBiYWQgdGFibGVcbiIpOworCQkJcmV0dXJuOworCQl9CisKKwkJ aWYgKCBpb3J0X25vZGUtPnR5cGUgPT0gQUNQSV9JT1JUX05PREVfUENJX1JPT1RfQ09NUExFWCAp CisJCQlwYXJzZV9wY2lyY19ub2RlKGlvcnRfbm9kZSk7CisJCWVsc2UgaWYgKCAoaW9ydF9ub2Rl LT50eXBlID09IEFDUElfSU9SVF9OT0RFX1NNTVUgfHwKKwkJCSAgICAgaW9ydF9ub2RlLT50eXBl ID09IEFDUElfSU9SVF9OT0RFX1NNTVVfVjMpICkKKwkJCXBhcnNlX3NtbXVfbm9kZShpb3J0X25v ZGUpOworCisJCWlvcnRfbm9kZSA9IEFDUElfQUREX1BUUihzdHJ1Y3QgYWNwaV9pb3J0X25vZGUs IGlvcnRfbm9kZSwKKwkJCQlpb3J0X25vZGUtPmxlbmd0aCk7CisJfQorfQorCisKIHZvaWQgX19p bml0IGFjcGlfaW9ydF9pbml0KHZvaWQpCiB7CiAJYWNwaV9zdGF0dXMgc3RhdHVzOwpAQCAtMzY2 LDQgKzU2NSw1IEBAIHZvaWQgX19pbml0IGFjcGlfaW9ydF9pbml0KHZvaWQpCiAJCX0KIAkJcmV0 dXJuOwogCX0KKwlwYXJzZV9pb3J0KCk7CiB9Ci0tIAoyLjE0LjEKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs