From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Mon, 20 May 2019 15:47:36 +0100 Message-Id: <20190520144739.13111-25-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20190520144739.13111-1-tvrtko.ursulin@linux.intel.com> References: <20190520144739.13111-1-tvrtko.ursulin@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 24/27] 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 a3MuCgp2MjoKICogU2ltcGxpZnkgaGFzX2VuZ2luZV9xdWVyeSBjaGVjay4gKEFuZGkpCiAqIEZp eCBhc3NlcnQgb24gdW5pbml0aWFsaXplZCB2YXJpYWJsZS4gKEFuZGkpCgpTaWduZWQtb2ZmLWJ5 OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIGJlbmNobWFy a3MvZ2VtX3dzaW0uYyB8IDE3MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNjYgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9iZW5jaG1hcmtzL2dlbV93c2ltLmMgYi9iZW5jaG1hcmtzL2dlbV93c2lt LmMKaW5kZXggMDJjM2U5ZDY1NWQ4Li42NGQxOWVkNDY5YjAgMTAwNjQ0Ci0tLSBhL2JlbmNobWFy a3MvZ2VtX3dzaW0uYworKysgYi9iZW5jaG1hcmtzL2dlbV93c2ltLmMKQEAgLTM2NSwzNCArMzY1 LDE5MSBAQCBzdGF0aWMgaW50IHN0cl90b19lbmdpbmUoY29uc3QgY2hhciAqc3RyKQogCXJldHVy biAtMTsKIH0KIAorc3RhdGljIGJvb2wgX19lbmdpbmVzX3F1ZXJpZWQ7CitzdGF0aWMgdW5zaWdu ZWQgaW50IF9fbnVtX2VuZ2luZXM7CitzdGF0aWMgc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2lu c3RhbmNlICpfX2VuZ2luZXM7CisKK3N0YXRpYyBpbnQKK19faTkxNV9xdWVyeShpbnQgaTkxNSwg c3RydWN0IGRybV9pOTE1X3F1ZXJ5ICpxKQoreworCWlmIChpZ3RfaW9jdGwoaTkxNSwgRFJNX0lP Q1RMX0k5MTVfUVVFUlksIHEpKQorCQlyZXR1cm4gLWVycm5vOworCXJldHVybiAwOworfQorCitz dGF0aWMgaW50CitfX2k5MTVfcXVlcnlfaXRlbXMoaW50IGk5MTUsIHN0cnVjdCBkcm1faTkxNV9x dWVyeV9pdGVtICppdGVtcywgdWludDMyX3Qgbl9pdGVtcykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVf cXVlcnkgcSA9IHsKKwkJLm51bV9pdGVtcyA9IG5faXRlbXMsCisJCS5pdGVtc19wdHIgPSB0b191 c2VyX3BvaW50ZXIoaXRlbXMpLAorCX07CisJcmV0dXJuIF9faTkxNV9xdWVyeShpOTE1LCAmcSk7 Cit9CisKK3N0YXRpYyB2b2lkCitpOTE1X3F1ZXJ5X2l0ZW1zKGludCBpOTE1LCBzdHJ1Y3QgZHJt X2k5MTVfcXVlcnlfaXRlbSAqaXRlbXMsIHVpbnQzMl90IG5faXRlbXMpCit7CisJaWd0X2Fzc2Vy dF9lcShfX2k5MTVfcXVlcnlfaXRlbXMoaTkxNSwgaXRlbXMsIG5faXRlbXMpLCAwKTsKK30KKwor c3RhdGljIGJvb2wgaGFzX2VuZ2luZV9xdWVyeShpbnQgaTkxNSkKK3sKKwlzdHJ1Y3QgZHJtX2k5 MTVfcXVlcnlfaXRlbSBpdGVtID0geworCQkucXVlcnlfaWQgPSBEUk1fSTkxNV9RVUVSWV9FTkdJ TkVfSU5GTywKKwl9OworCisJcmV0dXJuIF9faTkxNV9xdWVyeV9pdGVtcyhpOTE1LCAmaXRlbSwg MSkgPT0gMCAmJiBpdGVtLmxlbmd0aCA+IDA7Cit9CisKK3N0YXRpYyB2b2lkIHF1ZXJ5X2VuZ2lu ZXModm9pZCkKK3sKKwlzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKmVuZ2luZXM7 CisJdW5zaWduZWQgaW50IG51bTsKKworCWlmIChfX2VuZ2luZXNfcXVlcmllZCkKKwkJcmV0dXJu OworCisJX19lbmdpbmVzX3F1ZXJpZWQgPSB0cnVlOworCisJaWYgKCFoYXNfZW5naW5lX3F1ZXJ5 KGZkKSkgeworCQl1bnNpZ25lZCBpbnQgbnVtX2JzZCA9IGdlbV9oYXNfYnNkKGZkKSArIGdlbV9o YXNfYnNkMihmZCk7CisJCXVuc2lnbmVkIGludCBpID0gMDsKKworCQlpZ3RfYXNzZXJ0KG51bV9i c2QpOworCisJCW51bSA9IDEgKyBudW1fYnNkOworCisJCWlmIChnZW1faGFzX2JsdChmZCkpCisJ CQludW0rKzsKKworCQlpZiAoZ2VtX2hhc192ZWJveChmZCkpCisJCQludW0rKzsKKworCQllbmdp bmVzID0gY2FsbG9jKG51bSwKKwkJCQkgc2l6ZW9mKHN0cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19p bnN0YW5jZSkpOworCQlpZ3RfYXNzZXJ0KGVuZ2luZXMpOworCisJCWVuZ2luZXNbaV0uZW5naW5l X2NsYXNzID0gSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSOworCQllbmdpbmVzW2ldLmVuZ2luZV9p bnN0YW5jZSA9IDA7CisJCWkrKzsKKworCQlpZiAoZ2VtX2hhc19ibHQoZmQpKSB7CisJCQllbmdp bmVzW2ldLmVuZ2luZV9jbGFzcyA9IEk5MTVfRU5HSU5FX0NMQVNTX0NPUFk7CisJCQllbmdpbmVz W2ldLmVuZ2luZV9pbnN0YW5jZSA9IDA7CisJCQlpKys7CisJCX0KKworCQlpZiAoZ2VtX2hhc19i c2QoZmQpKSB7CisJCQllbmdpbmVzW2ldLmVuZ2luZV9jbGFzcyA9IEk5MTVfRU5HSU5FX0NMQVNT X1ZJREVPOworCQkJZW5naW5lc1tpXS5lbmdpbmVfaW5zdGFuY2UgPSAwOworCQkJaSsrOworCQl9 CisKKwkJaWYgKGdlbV9oYXNfYnNkMihmZCkpIHsKKwkJCWVuZ2luZXNbaV0uZW5naW5lX2NsYXNz ID0gSTkxNV9FTkdJTkVfQ0xBU1NfVklERU87CisJCQllbmdpbmVzW2ldLmVuZ2luZV9pbnN0YW5j ZSA9IDE7CisJCQlpKys7CisJCX0KKworCQlpZiAoZ2VtX2hhc192ZWJveChmZCkpIHsKKwkJCWVu Z2luZXNbaV0uZW5naW5lX2NsYXNzID0KKwkJCQlJOTE1X0VOR0lORV9DTEFTU19WSURFT19FTkhB TkNFOworCQkJZW5naW5lc1tpXS5lbmdpbmVfaW5zdGFuY2UgPSAwOworCQkJaSsrOworCQl9CisJ fSBlbHNlIHsKKwkJc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2VuZ2luZV9pbmZvICplbmdpbmVfaW5m bzsKKwkJc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gaXRlbSA9IHsKKwkJCS5xdWVyeV9pZCA9 IERSTV9JOTE1X1FVRVJZX0VOR0lORV9JTkZPLAorCQl9OworCQljb25zdCB1bnNpZ25lZCBpbnQg c3ogPSA0MDk2OworCQl1bnNpZ25lZCBpbnQgaTsKKworCQllbmdpbmVfaW5mbyA9IG1hbGxvYyhz eik7CisJCWlndF9hc3NlcnQoZW5naW5lX2luZm8pOworCQltZW1zZXQoZW5naW5lX2luZm8sIDAs IHN6KTsKKworCQlpdGVtLmRhdGFfcHRyID0gdG9fdXNlcl9wb2ludGVyKGVuZ2luZV9pbmZvKTsK KwkJaXRlbS5sZW5ndGggPSBzejsKKworCQlpOTE1X3F1ZXJ5X2l0ZW1zKGZkLCAmaXRlbSwgMSk7 CisJCWlndF9hc3NlcnQoaXRlbS5sZW5ndGggPiAwKTsKKwkJaWd0X2Fzc2VydChpdGVtLmxlbmd0 aCA8PSBzeik7CisKKwkJbnVtID0gZW5naW5lX2luZm8tPm51bV9lbmdpbmVzOworCisJCWVuZ2lu ZXMgPSBjYWxsb2MobnVtLAorCQkJCSBzaXplb2Yoc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2lu c3RhbmNlKSk7CisJCWlndF9hc3NlcnQoZW5naW5lcyk7CisKKwkJZm9yIChpID0gMDsgaSA8IG51 bTsgaSsrKSB7CisJCQlzdHJ1Y3QgZHJtX2k5MTVfZW5naW5lX2luZm8gKmVuZ2luZSA9CisJCQkJ KHN0cnVjdCBkcm1faTkxNV9lbmdpbmVfaW5mbyAqKSZlbmdpbmVfaW5mby0+ZW5naW5lc1tpXTsK KworCQkJZW5naW5lc1tpXSA9IGVuZ2luZS0+ZW5naW5lOworCQl9CisJfQorCisJX19lbmdpbmVz ID0gZW5naW5lczsKKwlfX251bV9lbmdpbmVzID0gbnVtOworfQorCiBzdGF0aWMgdW5zaWduZWQg aW50IG51bV9lbmdpbmVzX2luX2NsYXNzKGVudW0gaW50ZWxfZW5naW5lX2lkIGNsYXNzKQogewor CXVuc2lnbmVkIGludCBpLCBjb3VudCA9IDA7CisKIAlpZ3RfYXNzZXJ0KGNsYXNzID09IFZDUyk7 CiAKLQlyZXR1cm4gMjsKKwlxdWVyeV9lbmdpbmVzKCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgX19u dW1fZW5naW5lczsgaSsrKSB7CisJCWlmIChfX2VuZ2luZXNbaV0uZW5naW5lX2NsYXNzID09IEk5 MTVfRU5HSU5FX0NMQVNTX1ZJREVPKQorCQkJY291bnQrKzsKKwl9CisKKwlpZ3RfYXNzZXJ0KGNv dW50KTsKKwlyZXR1cm4gY291bnQ7CiB9CiAKIHN0YXRpYyB2b2lkCiBmaWxsX2VuZ2luZXNfY2xh c3Moc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2luc3RhbmNlICpjaSwKIAkJICAgZW51bSBpbnRl bF9lbmdpbmVfaWQgY2xhc3MpCiB7CisJdW5zaWduZWQgaW50IGksIGogPSAwOworCiAJaWd0X2Fz c2VydChjbGFzcyA9PSBWQ1MpOwogCi0JY2lbMF0uZW5naW5lX2NsYXNzID0gSTkxNV9FTkdJTkVf Q0xBU1NfVklERU87Ci0JY2lbMF0uZW5naW5lX2luc3RhbmNlID0gMDsKKwlxdWVyeV9lbmdpbmVz KCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgX19udW1fZW5naW5lczsgaSsrKSB7CisJCWlmIChfX2Vu Z2luZXNbaV0uZW5naW5lX2NsYXNzICE9IEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPKQorCQkJY29u dGludWU7CiAKLQljaVsxXS5lbmdpbmVfY2xhc3MgPSBJOTE1X0VOR0lORV9DTEFTU19WSURFTzsK LQljaVsxXS5lbmdpbmVfaW5zdGFuY2UgPSAxOworCQljaVtqXS5lbmdpbmVfY2xhc3MgPSBfX2Vu Z2luZXNbaV0uZW5naW5lX2NsYXNzOworCQljaVtqXS5lbmdpbmVfaW5zdGFuY2UgPSBfX2VuZ2lu ZXNbaV0uZW5naW5lX2luc3RhbmNlOworCQlqKys7CisJfQogfQogCiBzdGF0aWMgdm9pZAogZmls bF9lbmdpbmVzX2lkX2NsYXNzKGVudW0gaW50ZWxfZW5naW5lX2lkICpsaXN0LAogCQkgICAgICBl bnVtIGludGVsX2VuZ2luZV9pZCBjbGFzcykKIHsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBlbmdp bmUgPSBWQ1MxOworCXVuc2lnbmVkIGludCBpLCBqID0gMDsKKwogCWlndF9hc3NlcnQoY2xhc3Mg PT0gVkNTKTsKKwlpZ3RfYXNzZXJ0KG51bV9lbmdpbmVzX2luX2NsYXNzKFZDUykgPD0gMik7CisK KwlxdWVyeV9lbmdpbmVzKCk7CiAKLQlsaXN0WzBdID0gVkNTMTsKLQlsaXN0WzFdID0gVkNTMjsK Kwlmb3IgKGkgPSAwOyBpIDwgX19udW1fZW5naW5lczsgaSsrKSB7CisJCWlmIChfX2VuZ2luZXNb aV0uZW5naW5lX2NsYXNzICE9IEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPKQorCQkJY29udGludWU7 CisKKwkJbGlzdFtqKytdID0gZW5naW5lKys7CisJfQogfQogCiBzdGF0aWMgc3RydWN0IGk5MTVf ZW5naW5lX2NsYXNzX2luc3RhbmNlCkBAIC00MDAsNiArNTU3LDggQEAgZ2V0X2VuZ2luZShlbnVt IGludGVsX2VuZ2luZV9pZCBlbmdpbmUpCiB7CiAJc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2lu c3RhbmNlIGNpOwogCisJcXVlcnlfZW5naW5lcygpOworCiAJc3dpdGNoIChlbmdpbmUpIHsKIAlj YXNlIFJDUzoKIAkJY2kuZW5naW5lX2NsYXNzID0gSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSOwot LSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=