From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Fri, 17 May 2019 12:25:25 +0100 Message-Id: <20190517112526.6738-25-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20190517112526.6738-1-tvrtko.ursulin@linux.intel.com> References: <20190517112526.6738-1-tvrtko.ursulin@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 24/25] gem_wsim: Discover engines List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkluc3RlYWQg b2YgaGFyZGNvZGluZyB0aGUgVkNTIGJhbGFuY2luZyBlbmdpbmVzLCBkaXNjb3ZlciwgYm90aCB3 aXRoIHRoZQpuZXcgZW5naW5lcyBxdWVyeSwgb3Igd2l0aCB0aGUgbGVnYWN5IGdldF9wYXJhbSBp biB0aGUgZmFsbGJhY2sgY2FzZSwgc28KY2xhc3MgYmFzZWQgYWRkcmVzc2luZyBhbHdheXMgd29y a3MuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwu Y29tPgotLS0KIGJlbmNobWFya3MvZ2VtX3dzaW0uYyB8IDE4MCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNzMgaW5zZXJ0aW9ucygr KSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9iZW5jaG1hcmtzL2dlbV93c2ltLmMgYi9i ZW5jaG1hcmtzL2dlbV93c2ltLmMKaW5kZXggZDQzZTdjNzY3ODAxLi41MzlkZTI0M2Y2ZTggMTAw NjQ0Ci0tLSBhL2JlbmNobWFya3MvZ2VtX3dzaW0uYworKysgYi9iZW5jaG1hcmtzL2dlbV93c2lt LmMKQEAgLTM2NSwzNCArMzY1LDE5OCBAQCBzdGF0aWMgaW50IHN0cl90b19lbmdpbmUoY29uc3Qg Y2hhciAqc3RyKQogCXJldHVybiAtMTsKIH0KIAorc3RhdGljIGJvb2wgX19lbmdpbmVzX3F1ZXJp ZWQ7CitzdGF0aWMgdW5zaWduZWQgaW50IF9fbnVtX2VuZ2luZXM7CitzdGF0aWMgc3RydWN0IGk5 MTVfZW5naW5lX2NsYXNzX2luc3RhbmNlICpfX2VuZ2luZXM7CisKK3N0YXRpYyBpbnQKK19faTkx NV9xdWVyeShpbnQgaTkxNSwgc3RydWN0IGRybV9pOTE1X3F1ZXJ5ICpxKQoreworCWlmIChpZ3Rf aW9jdGwoaTkxNSwgRFJNX0lPQ1RMX0k5MTVfUVVFUlksIHEpKQorCQlyZXR1cm4gLWVycm5vOwor CXJldHVybiAwOworfQorCitzdGF0aWMgaW50CitfX2k5MTVfcXVlcnlfaXRlbXMoaW50IGk5MTUs IHN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtICppdGVtcywgdWludDMyX3Qgbl9pdGVtcykKK3sK KwlzdHJ1Y3QgZHJtX2k5MTVfcXVlcnkgcSA9IHsKKwkJLm51bV9pdGVtcyA9IG5faXRlbXMsCisJ CS5pdGVtc19wdHIgPSB0b191c2VyX3BvaW50ZXIoaXRlbXMpLAorCX07CisJcmV0dXJuIF9faTkx NV9xdWVyeShpOTE1LCAmcSk7Cit9CisKK3N0YXRpYyB2b2lkCitpOTE1X3F1ZXJ5X2l0ZW1zKGlu dCBpOTE1LCBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfaXRlbSAqaXRlbXMsIHVpbnQzMl90IG5faXRl bXMpCit7CisJaWd0X2Fzc2VydF9lcShfX2k5MTVfcXVlcnlfaXRlbXMoaTkxNSwgaXRlbXMsIG5f aXRlbXMpLCAwKTsKK30KKworc3RhdGljIGJvb2wgaGFzX3F1ZXJ5KGludCBpOTE1KQoreworCXN0 cnVjdCBkcm1faTkxNV9xdWVyeSBxdWVyeSA9IHt9OworCisJcmV0dXJuIF9faTkxNV9xdWVyeShp OTE1LCAmcXVlcnkpID09IDA7Cit9CisKK3N0YXRpYyBib29sIGhhc19lbmdpbmVfcXVlcnkoaW50 IGk5MTUpCit7CisJc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gaXRlbSA9IHsKKwkJLnF1ZXJ5 X2lkID0gRFJNX0k5MTVfUVVFUllfRU5HSU5FX0lORk8sCisJfTsKKworCXJldHVybiBfX2k5MTVf cXVlcnlfaXRlbXMoaTkxNSwgJml0ZW0sIDEpID09IDAgJiYgaXRlbS5sZW5ndGggPiAwOworfQor CitzdGF0aWMgdm9pZCBxdWVyeV9lbmdpbmVzKHZvaWQpCit7CisJc3RydWN0IGk5MTVfZW5naW5l X2NsYXNzX2luc3RhbmNlICplbmdpbmVzOworCXVuc2lnbmVkIGludCBudW07CisKKwlpZiAoX19l bmdpbmVzX3F1ZXJpZWQpCisJCXJldHVybjsKKworCV9fZW5naW5lc19xdWVyaWVkID0gdHJ1ZTsK KworCWlmICghaGFzX3F1ZXJ5KGZkKSB8fCAhaGFzX2VuZ2luZV9xdWVyeShmZCkpIHsKKwkJdW5z aWduZWQgaW50IG51bV9ic2QgPSBnZW1faGFzX2JzZChmZCkgKyBnZW1faGFzX2JzZDIoZmQpOwor CQl1bnNpZ25lZCBpbnQgaSA9IDA7CisKKwkJaWd0X2Fzc2VydChudW0pOworCisJCW51bSA9IDEg KyBudW1fYnNkOworCisJCWlmIChnZW1faGFzX2JsdChmZCkpCisJCQludW0rKzsKKworCQlpZiAo Z2VtX2hhc192ZWJveChmZCkpCisJCQludW0rKzsKKworCQllbmdpbmVzID0gY2FsbG9jKG51bSwK KwkJCQkgc2l6ZW9mKHN0cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0YW5jZSkpOworCQlpZ3Rf YXNzZXJ0KGVuZ2luZXMpOworCisJCWVuZ2luZXNbaV0uZW5naW5lX2NsYXNzID0gSTkxNV9FTkdJ TkVfQ0xBU1NfUkVOREVSOworCQllbmdpbmVzW2ldLmVuZ2luZV9pbnN0YW5jZSA9IDA7CisJCWkr KzsKKworCQlpZiAoZ2VtX2hhc19ibHQoZmQpKSB7CisJCQllbmdpbmVzW2ldLmVuZ2luZV9jbGFz cyA9IEk5MTVfRU5HSU5FX0NMQVNTX0NPUFk7CisJCQllbmdpbmVzW2ldLmVuZ2luZV9pbnN0YW5j ZSA9IDA7CisJCQlpKys7CisJCX0KKworCQlpZiAoZ2VtX2hhc19ic2QoZmQpKSB7CisJCQllbmdp bmVzW2ldLmVuZ2luZV9jbGFzcyA9IEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPOworCQkJZW5naW5l c1tpXS5lbmdpbmVfaW5zdGFuY2UgPSAwOworCQkJaSsrOworCQl9CisKKwkJaWYgKGdlbV9oYXNf YnNkMihmZCkpIHsKKwkJCWVuZ2luZXNbaV0uZW5naW5lX2NsYXNzID0gSTkxNV9FTkdJTkVfQ0xB U1NfVklERU87CisJCQllbmdpbmVzW2ldLmVuZ2luZV9pbnN0YW5jZSA9IDE7CisJCQlpKys7CisJ CX0KKworCQlpZiAoZ2VtX2hhc192ZWJveChmZCkpIHsKKwkJCWVuZ2luZXNbaV0uZW5naW5lX2Ns YXNzID0KKwkJCQlJOTE1X0VOR0lORV9DTEFTU19WSURFT19FTkhBTkNFOworCQkJZW5naW5lc1tp XS5lbmdpbmVfaW5zdGFuY2UgPSAwOworCQkJaSsrOworCQl9CisJfSBlbHNlIHsKKwkJc3RydWN0 IGRybV9pOTE1X3F1ZXJ5X2VuZ2luZV9pbmZvICplbmdpbmVfaW5mbzsKKwkJc3RydWN0IGRybV9p OTE1X3F1ZXJ5X2l0ZW0gaXRlbSA9IHsKKwkJCS5xdWVyeV9pZCA9IERSTV9JOTE1X1FVRVJZX0VO R0lORV9JTkZPLAorCQl9OworCQljb25zdCB1bnNpZ25lZCBpbnQgc3ogPSA0MDk2OworCQl1bnNp Z25lZCBpbnQgaTsKKworCQllbmdpbmVfaW5mbyA9IG1hbGxvYyhzeik7CisJCWlndF9hc3NlcnQo ZW5naW5lX2luZm8pOworCQltZW1zZXQoZW5naW5lX2luZm8sIDAsIHN6KTsKKworCQlpdGVtLmRh dGFfcHRyID0gdG9fdXNlcl9wb2ludGVyKGVuZ2luZV9pbmZvKTsKKwkJaXRlbS5sZW5ndGggPSBz ejsKKworCQlpOTE1X3F1ZXJ5X2l0ZW1zKGZkLCAmaXRlbSwgMSk7CisJCWlndF9hc3NlcnQoaXRl bS5sZW5ndGggPiAwKTsKKwkJaWd0X2Fzc2VydChpdGVtLmxlbmd0aCA8PSBzeik7CisKKwkJbnVt ID0gZW5naW5lX2luZm8tPm51bV9lbmdpbmVzOworCisJCWVuZ2luZXMgPSBjYWxsb2MobnVtLAor CQkJCSBzaXplb2Yoc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2luc3RhbmNlKSk7CisJCWlndF9h c3NlcnQoZW5naW5lcyk7CisKKwkJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7CisJCQlzdHJ1 Y3QgZHJtX2k5MTVfZW5naW5lX2luZm8gKmVuZ2luZSA9CisJCQkJKHN0cnVjdCBkcm1faTkxNV9l bmdpbmVfaW5mbyAqKSZlbmdpbmVfaW5mby0+ZW5naW5lc1tpXTsKKworCQkJZW5naW5lc1tpXSA9 IGVuZ2luZS0+ZW5naW5lOworCQl9CisJfQorCisJX19lbmdpbmVzID0gZW5naW5lczsKKwlfX251 bV9lbmdpbmVzID0gbnVtOworfQorCiBzdGF0aWMgdW5zaWduZWQgaW50IG51bV9lbmdpbmVzX2lu X2NsYXNzKGVudW0gaW50ZWxfZW5naW5lX2lkIGNsYXNzKQogeworCXVuc2lnbmVkIGludCBpLCBj b3VudCA9IDA7CisKIAlpZ3RfYXNzZXJ0KGNsYXNzID09IFZDUyk7CiAKLQlyZXR1cm4gMjsKKwlx dWVyeV9lbmdpbmVzKCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgX19udW1fZW5naW5lczsgaSsrKSB7 CisJCWlmIChfX2VuZ2luZXNbaV0uZW5naW5lX2NsYXNzID09IEk5MTVfRU5HSU5FX0NMQVNTX1ZJ REVPKQorCQkJY291bnQrKzsKKwl9CisKKwlpZ3RfYXNzZXJ0KGNvdW50KTsKKwlyZXR1cm4gY291 bnQ7CiB9CiAKIHN0YXRpYyB2b2lkCiBmaWxsX2VuZ2luZXNfY2xhc3Moc3RydWN0IGk5MTVfZW5n aW5lX2NsYXNzX2luc3RhbmNlICpjaSwKIAkJICAgZW51bSBpbnRlbF9lbmdpbmVfaWQgY2xhc3Mp CiB7CisJdW5zaWduZWQgaW50IGksIGogPSAwOworCiAJaWd0X2Fzc2VydChjbGFzcyA9PSBWQ1Mp OwogCi0JY2lbMF0uZW5naW5lX2NsYXNzID0gSTkxNV9FTkdJTkVfQ0xBU1NfVklERU87Ci0JY2lb MF0uZW5naW5lX2luc3RhbmNlID0gMDsKKwlxdWVyeV9lbmdpbmVzKCk7CiAKLQljaVsxXS5lbmdp bmVfY2xhc3MgPSBJOTE1X0VOR0lORV9DTEFTU19WSURFTzsKLQljaVsxXS5lbmdpbmVfaW5zdGFu Y2UgPSAxOworCWZvciAoaSA9IDA7IGkgPCBfX251bV9lbmdpbmVzOyBpKyspIHsKKwkJaWYgKF9f ZW5naW5lc1tpXS5lbmdpbmVfY2xhc3MgIT0gSTkxNV9FTkdJTkVfQ0xBU1NfVklERU8pCisJCQlj b250aW51ZTsKKworCQljaVtqXS5lbmdpbmVfY2xhc3MgPSBfX2VuZ2luZXNbaV0uZW5naW5lX2Ns YXNzOworCQljaVtqXS5lbmdpbmVfaW5zdGFuY2UgPSBfX2VuZ2luZXNbaV0uZW5naW5lX2luc3Rh bmNlOworCQlqKys7CisJfQogfQogCiBzdGF0aWMgdm9pZAogZmlsbF9lbmdpbmVzX2lkX2NsYXNz KGVudW0gaW50ZWxfZW5naW5lX2lkICpsaXN0LAogCQkgICAgICBlbnVtIGludGVsX2VuZ2luZV9p ZCBjbGFzcykKIHsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBlbmdpbmUgPSBWQ1MxOworCXVuc2ln bmVkIGludCBpLCBqID0gMDsKKwogCWlndF9hc3NlcnQoY2xhc3MgPT0gVkNTKTsKKwlpZ3RfYXNz ZXJ0KG51bV9lbmdpbmVzX2luX2NsYXNzKFZDUykgPD0gMik7CisKKwlxdWVyeV9lbmdpbmVzKCk7 CiAKLQlsaXN0WzBdID0gVkNTMTsKLQlsaXN0WzFdID0gVkNTMjsKKwlmb3IgKGkgPSAwOyBpIDwg X19udW1fZW5naW5lczsgaSsrKSB7CisJCWlmIChfX2VuZ2luZXNbaV0uZW5naW5lX2NsYXNzICE9 IEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPKQorCQkJY29udGludWU7CisKKwkJbGlzdFtqKytdID0g ZW5naW5lKys7CisJfQogfQogCiBzdGF0aWMgc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2luc3Rh bmNlCkBAIC00MDAsNiArNTY0LDggQEAgZ2V0X2VuZ2luZShlbnVtIGludGVsX2VuZ2luZV9pZCBl bmdpbmUpCiB7CiAJc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2luc3RhbmNlIGNpOwogCisJcXVl cnlfZW5naW5lcygpOworCiAJc3dpdGNoIChlbmdpbmUpIHsKIAljYXNlIFJDUzoKIAkJY2kuZW5n aW5lX2NsYXNzID0gSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSOwotLSAKMi4yMC4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcg bGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=