From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com [IPv6:2a00:1450:4864:20::343]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5FF0389BB0 for ; Fri, 10 May 2019 14:45:52 +0000 (UTC) Received: by mail-wm1-x343.google.com with SMTP id g26so5972768wmh.2 for ; Fri, 10 May 2019 07:45:52 -0700 (PDT) From: Tomeu Vizoso Date: Fri, 10 May 2019 16:44:57 +0200 Message-Id: <20190510144458.20113-5-tomeu.vizoso@collabora.com> In-Reply-To: <20190510144458.20113-1-tomeu.vizoso@collabora.com> References: <20190510144458.20113-1-tomeu.vizoso@collabora.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 5/6] tests/panfrost: Add initial tests for panfrost 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: Development mailing list for IGT GPU Tools Cc: Petri Latvala , Tomeu Vizoso List-ID: U2lnbmVkLW9mZi1ieTogVG9tZXUgVml6b3NvIDx0b21ldS52aXpvc29AY29sbGFib3JhLmNvbT4K QWNrZWQtYnk6IFBldHJpIExhdHZhbGEgPHBldHJpLmxhdHZhbGFAaW50ZWwuY29tPgotLS0KIHRl c3RzL21lc29uLmJ1aWxkICAgICAgICAgIHwgICA0ICsKIHRlc3RzL3BhbmZyb3N0X2dlbV9uZXcu YyAgIHwgIDkwICsrKysrKysrKysrKysrKysrKysrCiB0ZXN0cy9wYW5mcm9zdF9nZXRfcGFyYW0u YyB8ICA3MyArKysrKysrKysrKysrKysrKwogdGVzdHMvcGFuZnJvc3RfcHJpbWUuYyAgICAgfCAg NzkgKysrKysrKysrKysrKysrKysrCiB0ZXN0cy9wYW5mcm9zdF9zdWJtaXQuYyAgICB8IDE2MyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDQw OSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvcGFuZnJvc3RfZ2VtX25l dy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvcGFuZnJvc3RfZ2V0X3BhcmFtLmMKIGNyZWF0 ZSBtb2RlIDEwMDY0NCB0ZXN0cy9wYW5mcm9zdF9wcmltZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQg dGVzdHMvcGFuZnJvc3Rfc3VibWl0LmMKCmRpZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBi L3Rlc3RzL21lc29uLmJ1aWxkCmluZGV4IDcxMTk3OWI0YTFjMi4uMzUxNTk0ZmE3MmYwIDEwMDY0 NAotLS0gYS90ZXN0cy9tZXNvbi5idWlsZAorKysgYi90ZXN0cy9tZXNvbi5idWlsZApAQCAtNjMs NiArNjMsMTAgQEAgdGVzdF9wcm9ncyA9IFsKIAkna21zX3ZibGFuaycsCiAJJ2ttc192cnInLAog CSdtZXRhX3Rlc3QnLAorCSdwYW5mcm9zdF9nZXRfcGFyYW0nLAorCSdwYW5mcm9zdF9nZW1fbmV3 JywKKwkncGFuZnJvc3RfcHJpbWUnLAorCSdwYW5mcm9zdF9zdWJtaXQnLAogCSdwZXJmJywKIAkn cHJpbWVfYnVzeScsCiAJJ3ByaW1lX21tYXAnLApkaWZmIC0tZ2l0IGEvdGVzdHMvcGFuZnJvc3Rf Z2VtX25ldy5jIGIvdGVzdHMvcGFuZnJvc3RfZ2VtX25ldy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uOTQwNTI1ZmYxYjM0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVz dHMvcGFuZnJvc3RfZ2VtX25ldy5jCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg wqkgMjAxNiBCcm9hZGNvbQorICogQ29weXJpZ2h0IMKpIDIwMTkgQ29sbGFib3JhLCBMdGQuCisg KgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu eSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGlu IHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1p dGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUg U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUg aXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u czoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u IG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1 ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0 d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJV VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4g Tk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ QUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRI RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwor ICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhF IFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNs dWRlICJpZ3QuaCIKKyNpbmNsdWRlICJpZ3RfcGFuZnJvc3QuaCIKKyNpbmNsdWRlIDx1bmlzdGQu aD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0 cmluZy5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNpbmNs dWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL2lvY3Rs Lmg+CisjaW5jbHVkZSAicGFuZnJvc3RfZHJtLmgiCisKK2lndF9tYWluCit7CisJaW50IGZkOwor CisJaWd0X2ZpeHR1cmUgeworCQlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfUEFORlJPU1Qp OworCX0KKworCWlndF9zdWJ0ZXN0KCJnZW0tbmV3LTQwOTYiKSB7CisJCXN0cnVjdCBwYW5mcm9z dF9ibyAqYm8gPSBpZ3RfcGFuZnJvc3RfZ2VtX25ldyhmZCwgNDA5Nik7CisJCWlndF9wYW5mcm9z dF9mcmVlX2JvKGZkLCBibyk7CisJfQorCisJaWd0X3N1YnRlc3QoImdlbS1uZXctMCIpIHsKKwkJ c3RydWN0IGRybV9wYW5mcm9zdF9jcmVhdGVfYm8gYXJnID0geworCQkJLnNpemUgPSAwLAorCQl9 OworCQlkb19pb2N0bF9lcnIoZmQsIERSTV9JT0NUTF9QQU5GUk9TVF9DUkVBVEVfQk8sICZhcmcs IEVJTlZBTCk7CisJfQorCisJaWd0X3N1YnRlc3QoImdlbS1uZXctemVyb2VkIikgeworCQlpbnQg ZmQyID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9QQU5GUk9TVCk7CisJCXN0cnVjdCBwYW5mcm9z dF9ibyAqYm87CisJCXVpbnQzMl90ICptYXA7CisJCS8qIEEgc2l6ZSBkaWZmZXJlbnQgZnJvbSBh bnkgdXNlZCBpbiBvdXIgb3RoZXIgdGVzdHMsIHRvIHRyeQorCQkgKiB0byBjb252aW5jZSBpdCB0 byBsYW5kIGFzIHRoZSBvbmx5IG9uZSBvZiBpdHMgc2l6ZSBpbiB0aGUKKwkJICoga2VybmVsIEJP IGNhY2hlCisJCSAqLworCQlzaXplX3Qgc2l6ZSA9IDMgKiA0MDk2LCBpOworCisJCS8qIE1ha2Ug YSBCTyBhbmQgZnJlZSBpdCBvbiBvdXIgbWFpbiBmZC4gKi8KKwkJYm8gPSBpZ3RfcGFuZnJvc3Rf Z2VtX25ldyhmZCwgc2l6ZSk7CisJCW1hcCA9IGlndF9wYW5mcm9zdF9tbWFwX2JvKGZkLCBiby0+ aGFuZGxlLCBzaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsKKwkJbWVtc2V0KG1hcCwgMHhk MCwgc2l6ZSk7CisJCW11bm1hcChtYXAsIHNpemUpOworCQlpZ3RfcGFuZnJvc3RfZnJlZV9ibyhm ZCwgYm8pOworCisJCS8qIE5vdywgYWxsb2NhdGUgYSBCTyBvbiB0aGUgb3RoZXIgZmQgYW5kIG1h a2Ugc3VyZSBpdCBkb2Vzbid0CisJCSAqIGhhdmUgdGhlIG9sZCBjb250ZW50cy4KKwkJICovCisJ CWJvID0gaWd0X3BhbmZyb3N0X2dlbV9uZXcoZmQyLCBzaXplKTsKKwkJbWFwID0gaWd0X3BhbmZy b3N0X21tYXBfYm8oZmQyLCBiby0+aGFuZGxlLCBzaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRF KTsKKwkJZm9yIChpID0gMDsgaSA8IHNpemUgLyA0OyBpKyspCisJCQlpZ3RfYXNzZXJ0X2VxX3Uz MihtYXBbaV0sIDB4MCk7CisJCW11bm1hcChtYXAsIHNpemUpOworCQlpZ3RfcGFuZnJvc3RfZnJl ZV9ibyhmZDIsIGJvKTsKKworCQljbG9zZShmZDIpOworCX0KKworCWlndF9maXh0dXJlCisJCWNs b3NlKGZkKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL3BhbmZyb3N0X2dldF9wYXJhbS5jIGIvdGVz dHMvcGFuZnJvc3RfZ2V0X3BhcmFtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi4xMWMyNjMyYjhmM2IKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9wYW5mcm9zdF9n ZXRfcGFyYW0uYwpAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTcgQnJv YWRjb20KKyAqIENvcHlyaWdodCDCqSAyMDE5IENvbGxhYm9yYSwgTHRkLgorICoKKyAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICog dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1 dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGlu Y2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgor ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI RVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaW5jbHVkZSAiaWd0Lmgi CisjaW5jbHVkZSAiaWd0X3BhbmZyb3N0LmgiCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVk ZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNp bmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8ZXJybm8u aD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1 ZGUgPHBvbGwuaD4KKyNpbmNsdWRlICJwYW5mcm9zdF9kcm0uaCIKKworaWd0X21haW4KK3sKKwlp bnQgZmQ7CisKKwlpZ3RfZml4dHVyZQorCQlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfUEFO RlJPU1QpOworCisJaWd0X3N1YnRlc3QoImJhc2UtcGFyYW1zIikgeworCQlpbnQgbGFzdF9iYXNl X3BhcmFtID0gRFJNX1BBTkZST1NUX1BBUkFNX0dQVV9QUk9EX0lEOworCQl1aW50MzJfdCByZXN1 bHRzW2xhc3RfYmFzZV9wYXJhbSArIDFdOworCisJCWZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlf U0laRShyZXN1bHRzKTsgaSsrKQorCQkJcmVzdWx0c1tpXSA9IGlndF9wYW5mcm9zdF9nZXRfcGFy YW0oZmQsIGkpOworCisJCWlndF9hc3NlcnQocmVzdWx0c1tEUk1fUEFORlJPU1RfUEFSQU1fR1BV X1BST0RfSURdKTsKKwl9CisKKwlpZ3Rfc3VidGVzdCgiZ2V0LWJhZC1wYXJhbSIpIHsKKwkJc3Ry dWN0IGRybV9wYW5mcm9zdF9nZXRfcGFyYW0gZ2V0ID0geworCQkJLnBhcmFtID0gMHhkMGQwZDBk MCwKKwkJfTsKKwkJZG9faW9jdGxfZXJyKGZkLCBEUk1fSU9DVExfUEFORlJPU1RfR0VUX1BBUkFN LCAmZ2V0LCBFSU5WQUwpOworCX0KKworCWlndF9zdWJ0ZXN0KCJnZXQtYmFkLXBhZGRpbmciKSB7 CisJCXN0cnVjdCBkcm1fcGFuZnJvc3RfZ2V0X3BhcmFtIGdldCA9IHsKKwkJCS5wYXJhbSA9IERS TV9QQU5GUk9TVF9QQVJBTV9HUFVfUFJPRF9JRCwKKwkJCS5wYWQgPSAxLAorCQl9OworCQlkb19p b2N0bF9lcnIoZmQsIERSTV9JT0NUTF9QQU5GUk9TVF9HRVRfUEFSQU0sICZnZXQsIEVJTlZBTCk7 CisJfQorCisJaWd0X2ZpeHR1cmUKKwkJY2xvc2UoZmQpOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMv cGFuZnJvc3RfcHJpbWUuYyBiL3Rlc3RzL3BhbmZyb3N0X3ByaW1lLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zNTFkNDZmMmY3ZTYKLS0tIC9kZXYvbnVsbAorKysg Yi90ZXN0cy9wYW5mcm9zdF9wcmltZS5jCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmln aHQgwqkgMjAxNiBCcm9hZGNvbQorICogQ29weXJpZ2h0IMKpIDIwMTkgQ29sbGFib3JhLCBMdGQu CisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv IGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNz b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs aW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi bGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0 aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdh cmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz aW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGlu Y2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBT b2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisg KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAg SU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF IExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO RworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1Ig VEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNp bmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRlICJpZ3RfcGFuZnJvc3QuaCIKKyNpbmNsdWRlIDx1bmlz dGQuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUg PHN0cmluZy5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNp bmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL2lv Y3RsLmg+CisjaW5jbHVkZSAicGFuZnJvc3RfZHJtLmgiCisKK2lndF9tYWluCit7CisJaW50IGZk LCBrbXNfZmQ7CisKKwlpZ3RfZml4dHVyZSB7CisJCWttc19mZCA9IGRybV9vcGVuX2RyaXZlcl9t YXN0ZXIoRFJJVkVSX0FOWSk7CisJCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9QQU5GUk9T VCk7CisJfQorCisJaWd0X3N1YnRlc3QoImdlbS1wcmltZS1pbXBvcnQiKSB7CisJCXN0cnVjdCBw YW5mcm9zdF9ibyAqYm87CisJCXVpbnQzMl90IGhhbmRsZSwgZHVtYl9oYW5kbGU7CisJICAgICAg ICBzdHJ1Y3QgZHJtX3BhbmZyb3N0X2dldF9ib19vZmZzZXQgZ2V0X2JvX29mZnNldCA9IHswLH07 CisJCWludCBkbWFidWZfZmQ7CisKKwkJLyogSnVzdCB0byBiZSBzdXJlIHRoYXQgd2hlbiB3ZSBp bXBvcnQgdGhlIGR1bWIgYnVmZmVyIGl0IGhhcworCQkgKiBhIG5vbi1OVUxMIGFkZHJlc3MuCisJ CSAqLworCQlibyA9IGlndF9wYW5mcm9zdF9nZW1fbmV3KGZkLCAxMDI0KTsKKworCQlkdW1iX2hh bmRsZSA9IGttc3Rlc3RfZHVtYl9jcmVhdGUoa21zX2ZkLCAxMDI0LCAxMDI0LCAzMiwgTlVMTCwg TlVMTCk7CisKKwkJZG1hYnVmX2ZkID0gcHJpbWVfaGFuZGxlX3RvX2ZkKGttc19mZCwgZHVtYl9o YW5kbGUpOworCisJCWhhbmRsZSA9IHByaW1lX2ZkX3RvX2hhbmRsZShmZCwgZG1hYnVmX2ZkKTsK KworCQlnZXRfYm9fb2Zmc2V0LmhhbmRsZSA9IGhhbmRsZTsKKwkJZG9faW9jdGwoZmQsIERSTV9J T0NUTF9QQU5GUk9TVF9HRVRfQk9fT0ZGU0VULCAmZ2V0X2JvX29mZnNldCk7CisJCWlndF9hc3Nl cnQoZ2V0X2JvX29mZnNldC5vZmZzZXQpOworCisJCWdlbV9jbG9zZShmZCwgaGFuZGxlKTsKKwor CQlrbXN0ZXN0X2R1bWJfZGVzdHJveShrbXNfZmQsIGR1bWJfaGFuZGxlKTsKKworCQlpZ3RfcGFu ZnJvc3RfZnJlZV9ibyhmZCwgYm8pOworCX0KKworCWlndF9maXh0dXJlIHsKKwkJY2xvc2UoZmQp OworCQljbG9zZShrbXNfZmQpOworCX0KK30KZGlmZiAtLWdpdCBhL3Rlc3RzL3BhbmZyb3N0X3N1 Ym1pdC5jIGIvdGVzdHMvcGFuZnJvc3Rfc3VibWl0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi41NzcwZGMyNGE0MmIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9w YW5mcm9zdF9zdWJtaXQuYwpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAy MDE2IEJyb2FkY29tCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBDb2xsYWJvcmEsIEx0ZC4KKyAqCisg KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl cnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhl IFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRp b24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk aXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0 d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBm dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgor ICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90 aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQg aW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJl LgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBF VkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJ TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBG Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNF IE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1ZGUg ImlndC5oIgorI2luY2x1ZGUgImlndF9wYW5mcm9zdC5oIgorI2luY2x1ZGUgImlndF9zeW5jb2Jq LmgiCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8 c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1 ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5o PgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgInBhbmZyb3N0X2RybS5oIgorCisj ZGVmaW5lIFdJRFRIICAgICAgICAgIDEzNjYKKyNkZWZpbmUgSEVJR0hUICAgICAgICAgNzY4Cisj ZGVmaW5lIENMRUFSX0NPTE9SICAgIDB4ZmY3ZjdmN2YKKworLyogT25lIHRlbnRoIG9mIGEgc2Vj b25kICovCisjZGVmaW5lIFNIT1JUX1RJTUVfTlNFQyAxMDAwMDAwMDB1bGwKKworLyogQWRkIHRo ZSB0aW1lIHRoYXQgdGhlIGJhZCBqb2IgdGFrZXMgdG8gdGltZW91dCAoc2NoZWQtPnRpbWVvdXQp IGFuZCB0aGUgdGltZSB0aGF0IGEgcmVzZXQgY2FuIHRha2UgKi8KKyNkZWZpbmUgQkFEX0pPQl9U SU1FX05TRUMgKFNIT1JUX1RJTUVfTlNFQyArIDUwMDAwMDAwMHVsbCArIDEwMDAwMDAwMHVsbCkK KworI2RlZmluZSBOU0VDU19QRVJfU0VDIDEwMDAwMDAwMDB1bGwKKworc3RhdGljIHVpbnQ2NF90 CithYnNfdGltZW91dCh1aW50NjRfdCBkdXJhdGlvbikKK3sKKyAgICAgICAgc3RydWN0IHRpbWVz cGVjIGN1cnJlbnQ7CisgICAgICAgIGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmY3Vy cmVudCk7CisgICAgICAgIHJldHVybiAodWludDY0X3QpY3VycmVudC50dl9zZWMgKiBOU0VDU19Q RVJfU0VDICsgY3VycmVudC50dl9uc2VjICsgZHVyYXRpb247Cit9CisKK3N0YXRpYyB2b2lkIGNo ZWNrX2ZiKGludCBmZCwgc3RydWN0IHBhbmZyb3N0X2JvICpibykKK3sKKyAgICAgICAgX191aW50 MzJfdCAqZmJvOworICAgICAgICBpbnQgaTsKKworICAgICAgICBmYm8gPSBiby0+bWFwOworICAg ICAgICBmb3IgKGkgPSAwOyBpIDwgQUxJR04oV0lEVEgsIDE2KSAqIEhFSUdIVDsgaSsrKQorICAg ICAgICAgICAgICAgIGlndF9hc3NlcnRfZXFfdTMyKGZib1tpXSwgQ0xFQVJfQ09MT1IpOworfQor CitpZ3RfbWFpbgoreworICAgICAgICBpbnQgZmQ7CisKKyAgICAgICAgaWd0X2ZpeHR1cmUgewor ICAgICAgICAgICAgICAgIGZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9QQU5GUk9TVCk7Cisg ICAgICAgIH0KKworICAgICAgICBpZ3Rfc3VidGVzdCgicGFuLXN1Ym1pdCIpIHsKKyAgICAgICAg ICAgICAgICBzdHJ1Y3QgcGFuZnJvc3Rfc3VibWl0ICpzdWJtaXQ7CisKKyAgICAgICAgICAgICAg ICBzdWJtaXQgPSBpZ3RfcGFuZnJvc3RfdHJpdmlhbF9qb2IoZmQsIGZhbHNlLCBXSURUSCwgSEVJ R0hULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD TEVBUl9DT0xPUik7CisKKyAgICAgICAgICAgICAgICBpZ3RfcGFuZnJvc3RfYm9fbW1hcChmZCwg c3VibWl0LT5mYm8pOworICAgICAgICAgICAgICAgIGRvX2lvY3RsKGZkLCBEUk1fSU9DVExfUEFO RlJPU1RfU1VCTUlULCBzdWJtaXQtPmFyZ3MpOworICAgICAgICAgICAgICAgIGlndF9hc3NlcnQo c3luY29ial93YWl0KGZkLCAmc3VibWl0LT5hcmdzLT5vdXRfc3luYywgMSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnNfdGltZW91dChTSE9SVF9USU1FX05TRUMp LCAwLCBOVUxMKSk7CisgICAgICAgICAgICAgICAgY2hlY2tfZmIoZmQsIHN1Ym1pdC0+ZmJvKTsK KyAgICAgICAgICAgICAgICBpZ3RfcGFuZnJvc3RfZnJlZV9qb2IoZmQsIHN1Ym1pdCk7CisgICAg ICAgIH0KKworICAgICAgICBpZ3Rfc3VidGVzdCgicGFuLXN1Ym1pdC1lcnJvci1uby1qYyIpIHsK KyAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3BhbmZyb3N0X3N1Ym1pdCBzdWJtaXQgPSB7Lmpj ID0gMCx9OworICAgICAgICAgICAgICAgIGRvX2lvY3RsX2VycihmZCwgRFJNX0lPQ1RMX1BBTkZS T1NUX1NVQk1JVCwgJnN1Ym1pdCwgRUlOVkFMKTsKKyAgICAgICAgfQorCisgICAgICAgIGlndF9z dWJ0ZXN0KCJwYW4tc3VibWl0LWVycm9yLWJhZC1pbi1zeW5jcyIpIHsKKyAgICAgICAgICAgICAg ICBzdHJ1Y3QgcGFuZnJvc3Rfc3VibWl0ICpzdWJtaXQ7CisKKyAgICAgICAgICAgICAgICBzdWJt aXQgPSBpZ3RfcGFuZnJvc3RfdHJpdmlhbF9qb2IoZmQsIGZhbHNlLCBXSURUSCwgSEVJR0hULAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEVBUl9D T0xPUik7CisgICAgICAgICAgICAgICAgc3VibWl0LT5hcmdzLT5pbl9zeW5jcyA9IDBVTEw7Cisg ICAgICAgICAgICAgICAgc3VibWl0LT5hcmdzLT5pbl9zeW5jX2NvdW50ID0gMTsKKworICAgICAg ICAgICAgICAgIGRvX2lvY3RsX2VycihmZCwgRFJNX0lPQ1RMX1BBTkZST1NUX1NVQk1JVCwgc3Vi bWl0LT5hcmdzLCBFRkFVTFQpOworICAgICAgICB9CisKKyAgICAgICAgaWd0X3N1YnRlc3QoInBh bi1zdWJtaXQtZXJyb3ItYmFkLWJvLWhhbmRsZXMiKSB7CisgICAgICAgICAgICAgICAgc3RydWN0 IHBhbmZyb3N0X3N1Ym1pdCAqc3VibWl0OworCisgICAgICAgICAgICAgICAgc3VibWl0ID0gaWd0 X3BhbmZyb3N0X3RyaXZpYWxfam9iKGZkLCBmYWxzZSwgV0lEVEgsIEhFSUdIVCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xFQVJfQ09MT1IpOwor ICAgICAgICAgICAgICAgIHN1Ym1pdC0+YXJncy0+Ym9faGFuZGxlcyA9IDBVTEw7CisgICAgICAg ICAgICAgICAgc3VibWl0LT5hcmdzLT5ib19oYW5kbGVfY291bnQgPSAxOworCisgICAgICAgICAg ICAgICAgZG9faW9jdGxfZXJyKGZkLCBEUk1fSU9DVExfUEFORlJPU1RfU1VCTUlULCBzdWJtaXQt PmFyZ3MsIEVGQVVMVCk7CisgICAgICAgIH0KKworICAgICAgICBpZ3Rfc3VidGVzdCgicGFuLXN1 Ym1pdC1lcnJvci1iYWQtcmVxdWlyZW1lbnRzIikgeworICAgICAgICAgICAgICAgIHN0cnVjdCBw YW5mcm9zdF9zdWJtaXQgKnN1Ym1pdDsKKworICAgICAgICAgICAgICAgIHN1Ym1pdCA9IGlndF9w YW5mcm9zdF90cml2aWFsX2pvYihmZCwgZmFsc2UsIFdJRFRILCBIRUlHSFQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMRUFSX0NPTE9SKTsKKyAg ICAgICAgICAgICAgICBzdWJtaXQtPmFyZ3MtPnJlcXVpcmVtZW50cyA9IDI7CisKKyAgICAgICAg ICAgICAgICBkb19pb2N0bF9lcnIoZmQsIERSTV9JT0NUTF9QQU5GUk9TVF9TVUJNSVQsIHN1Ym1p dC0+YXJncywgRUlOVkFMKTsKKyAgICAgICAgfQorCisgICAgICAgIGlndF9zdWJ0ZXN0KCJwYW4t c3VibWl0LWVycm9yLWJhZC1vdXQtc3luYyIpIHsKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFu ZnJvc3Rfc3VibWl0ICpzdWJtaXQ7CisKKyAgICAgICAgICAgICAgICBzdWJtaXQgPSBpZ3RfcGFu ZnJvc3RfdHJpdmlhbF9qb2IoZmQsIGZhbHNlLCBXSURUSCwgSEVJR0hULAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEVBUl9DT0xPUik7CisgICAg ICAgICAgICAgICAgc3VibWl0LT5hcmdzLT5vdXRfc3luYyA9IC0xOworCisgICAgICAgICAgICAg ICAgZG9faW9jdGxfZXJyKGZkLCBEUk1fSU9DVExfUEFORlJPU1RfU1VCTUlULCBzdWJtaXQtPmFy Z3MsIEVOT0RFVik7CisgICAgICAgIH0KKworICAgICAgICBpZ3Rfc3VidGVzdCgicGFuLXJlc2V0 IikgeworICAgICAgICAgICAgICAgIHN0cnVjdCBwYW5mcm9zdF9zdWJtaXQgKnN1Ym1pdDsKKwor ICAgICAgICAgICAgICAgIHN1Ym1pdCA9IGlndF9wYW5mcm9zdF90cml2aWFsX2pvYihmZCwgdHJ1 ZSwgV0lEVEgsIEhFSUdIVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ0xFQVJfQ09MT1IpOworICAgICAgICAgICAgICAgIGRvX2lvY3RsKGZkLCBE Uk1fSU9DVExfUEFORlJPU1RfU1VCTUlULCBzdWJtaXQtPmFyZ3MpOworICAgICAgICAgICAgICAg IC8qIEV4cGVjdCBmb3IgdGhpcyBqb2IgdG8gdGltZW91dCAqLworICAgICAgICAgICAgICAgIGln dF9hc3NlcnQoIXN5bmNvYmpfd2FpdChmZCwgJnN1Ym1pdC0+YXJncy0+b3V0X3N5bmMsIDEsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFic190aW1lb3V0KFNIT1JU X1RJTUVfTlNFQyksIDAsIE5VTEwpKTsKKyAgICAgICAgICAgICAgICBpZ3RfcGFuZnJvc3RfZnJl ZV9qb2IoZmQsIHN1Ym1pdCk7CisKKyAgICAgICAgICAgICAgICBzdWJtaXQgPSBpZ3RfcGFuZnJv c3RfdHJpdmlhbF9qb2IoZmQsIGZhbHNlLCBXSURUSCwgSEVJR0hULAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEVBUl9DT0xPUik7CisgICAgICAg ICAgICAgICAgaWd0X3BhbmZyb3N0X2JvX21tYXAoZmQsIHN1Ym1pdC0+ZmJvKTsKKyAgICAgICAg ICAgICAgICBkb19pb2N0bChmZCwgRFJNX0lPQ1RMX1BBTkZST1NUX1NVQk1JVCwgc3VibWl0LT5h cmdzKTsKKyAgICAgICAgICAgICAgICAvKiBUaGlzIG9uZSBzaG91bGQgd29yayAqLworICAgICAg ICAgICAgICAgIGlndF9hc3NlcnQoc3luY29ial93YWl0KGZkLCAmc3VibWl0LT5hcmdzLT5vdXRf c3luYywgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnNfdGlt ZW91dChCQURfSk9CX1RJTUVfTlNFQyksIDAsIE5VTEwpKTsKKyAgICAgICAgICAgICAgICBjaGVj a19mYihmZCwgc3VibWl0LT5mYm8pOworICAgICAgICAgICAgICAgIGlndF9wYW5mcm9zdF9mcmVl X2pvYihmZCwgc3VibWl0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlndF9maXh0dXJlIHsKKyAg ICAgICAgICAgICAgICBjbG9zZShmZCk7CisgICAgICAgIH0KK30KLS0gCjIuMjAuMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5n IGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2