From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [RFC i-g-t 1/2] intel-gpu-overlay: Use new class/instance based PMU API Date: Wed, 2 Aug 2017 13:33:11 +0100 Message-ID: <20170802123312.14292-2-tvrtko.ursulin@linux.intel.com> References: <20170802123312.14292-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x243.google.com (mail-wr0-x243.google.com [IPv6:2a00:1450:400c:c0c::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4CB2E6F10C for ; Wed, 2 Aug 2017 12:33:21 +0000 (UTC) Received: by mail-wr0-x243.google.com with SMTP id y67so3563267wrb.3 for ; Wed, 02 Aug 2017 05:33:21 -0700 (PDT) In-Reply-To: <20170802123312.14292-1-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNvIGl0IHdv cmtzIHdpdGggdGhlIGk5MTUgUE1VIFJGQyBrZXJuZWwgcGF0Y2hlcy4KClNpZ25lZC1vZmYtYnk6 IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Ci0tLQogb3ZlcmxheS9n ZW0taW50ZXJydXB0cy5jIHwgIDIgKy0KIG92ZXJsYXkvZ3B1LWZyZXEuYyAgICAgICB8ICA0ICst LQogb3ZlcmxheS9ncHUtdG9wLmMgICAgICAgIHwgNTEgKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tCiBvdmVybGF5L3BlcmYuaCAgICAgICAgICAgfCA2OCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIG92ZXJsYXkvcG93ZXIuYyAgICAg ICAgICB8ICAyICstCiBvdmVybGF5L3JjNi5jICAgICAgICAgICAgfCAgNiArKy0tLQogNiBmaWxl cyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCA1NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9vdmVybGF5L2dlbS1pbnRlcnJ1cHRzLmMgYi9vdmVybGF5L2dlbS1pbnRlcnJ1cHRzLmMKaW5k ZXggMDE1MGExZDAzODI1Li5mN2M4OGQ0ODIyYTUgMTAwNjQ0Ci0tLSBhL292ZXJsYXkvZ2VtLWlu dGVycnVwdHMuYworKysgYi9vdmVybGF5L2dlbS1pbnRlcnJ1cHRzLmMKQEAgLTQ0LDcgKzQ0LDcg QEAgc3RhdGljIGludCBwZXJmX29wZW4odm9pZCkKIAlhdHRyLnR5cGUgPSBpOTE1X3R5cGVfaWQo KTsKIAlpZiAoYXR0ci50eXBlID09IDApCiAJCXJldHVybiAtRU5PRU5UOwotCWF0dHIuY29uZmln ID0gSTkxNV9QRVJGX0lOVEVSUlVQVFM7CisJYXR0ci5jb25maWcgPSBJOTE1X1BNVV9JTlRFUlJV UFRTOwogCiAJcmV0dXJuIHBlcmZfZXZlbnRfb3BlbigmYXR0ciwgLTEsIDAsIC0xLCAwKTsKIH0K ZGlmZiAtLWdpdCBhL292ZXJsYXkvZ3B1LWZyZXEuYyBiL292ZXJsYXkvZ3B1LWZyZXEuYwppbmRl eCAzMjFjOTM4ODIyMzguLmJmZDc5NzYwYTdjOCAxMDA2NDQKLS0tIGEvb3ZlcmxheS9ncHUtZnJl cS5jCisrKyBiL292ZXJsYXkvZ3B1LWZyZXEuYwpAQCAtNTQsOCArNTQsOCBAQCBzdGF0aWMgaW50 IHBlcmZfb3Blbih2b2lkKQogewogCWludCBmZDsKIAotCWZkID0gcGVyZl9pOTE1X29wZW4oSTkx NV9QRVJGX0FDVFVBTF9GUkVRVUVOQ1ksIC0xKTsKLQlpZiAocGVyZl9pOTE1X29wZW4oSTkxNV9Q RVJGX1JFUVVFU1RFRF9GUkVRVUVOQ1ksIGZkKSA8IDApIHsKKwlmZCA9IHBlcmZfaTkxNV9vcGVu KEk5MTVfUE1VX0FDVFVBTF9GUkVRVUVOQ1ksIC0xKTsKKwlpZiAocGVyZl9pOTE1X29wZW4oSTkx NV9QTVVfUkVRVUVTVEVEX0ZSRVFVRU5DWSwgZmQpIDwgMCkgewogCQljbG9zZShmZCk7CiAJCWZk ID0gLTE7CiAJfQpkaWZmIC0tZ2l0IGEvb3ZlcmxheS9ncHUtdG9wLmMgYi9vdmVybGF5L2dwdS10 b3AuYwppbmRleCA4OTFhN2VhN2MwYjEuLmZhM2Q4YzVkNGUzYyAxMDA2NDQKLS0tIGEvb3Zlcmxh eS9ncHUtdG9wLmMKKysrIGIvb3ZlcmxheS9ncHUtdG9wLmMKQEAgLTQyLDExICs0Miw2IEBACiAj ZGVmaW5lICAgUklOR19XQUlUCQkoMTw8MTEpCiAjZGVmaW5lICAgUklOR19XQUlUX1NFTUFQSE9S RQkoMTw8MTApCiAKLSNkZWZpbmUgX19JOTE1X1BFUkZfUklORyhuKSAoNCpuKQotI2RlZmluZSBJ OTE1X1BFUkZfUklOR19CVVNZKG4pIChfX0k5MTVfUEVSRl9SSU5HKG4pICsgMCkKLSNkZWZpbmUg STkxNV9QRVJGX1JJTkdfV0FJVChuKSAoX19JOTE1X1BFUkZfUklORyhuKSArIDEpCi0jZGVmaW5l IEk5MTVfUEVSRl9SSU5HX1NFTUEobikgKF9fSTkxNV9QRVJGX1JJTkcobikgKyAyKQotCiBzdGF0 aWMgaW50IHBlcmZfaTkxNV9vcGVuKGludCBjb25maWcsIGludCBncm91cCkKIHsKIAlzdHJ1Y3Qg cGVyZl9ldmVudF9hdHRyIGF0dHI7CkBAIC02NywzOSArNjIsNTMgQEAgc3RhdGljIGludCBwZXJm X2k5MTVfb3BlbihpbnQgY29uZmlnLCBpbnQgZ3JvdXApCiAKIHN0YXRpYyBpbnQgcGVyZl9pbml0 KHN0cnVjdCBncHVfdG9wICpndCkKIHsKLQljb25zdCBjaGFyICpuYW1lc1tdID0gewotCQkiUkNT IiwKLQkJIkJDUyIsCi0JCSJWQ1MwIiwKLQkJIlZDUzEiLAotCQlOVUxMLAorCXN0cnVjdCBlbmdp bmVfZGVzYyB7CisJCXVuc2lnbmVkIGNsYXNzLCBpbnN0YW5jZTsKKwkJY29uc3QgY2hhciAqbmFt ZTsKKwl9ICpkLCBlbmdpbmVzW10gPSB7CisJCXsgSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSLCAw LCAicmNzMCIgfSwKKwkJeyBJOTE1X0VOR0lORV9DTEFTU19DT1BZLCAwLCAiYmNzMCIgfSwKKwkJ eyBJOTE1X0VOR0lORV9DTEFTU19WSURFTywgMCwgInZjczAiIH0sCisJCXsgSTkxNV9FTkdJTkVf Q0xBU1NfVklERU8sIDEsICJ2Y3MxIiB9LAorCQl7IEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPX0VO SEFOQ0UsIDAsICJ2ZWNzMCIgfSwKKwkJeyAwLCAwLCBOVUxMIH0KIAl9OwotCWludCBuOwogCi0J Z3QtPmZkID0gcGVyZl9pOTE1X29wZW4oSTkxNV9QRVJGX1JJTkdfQlVTWSgwKSwgLTEpOworCWQg PSAmZW5naW5lc1swXTsKKworCWd0LT5mZCA9IHBlcmZfaTkxNV9vcGVuKEk5MTVfUE1VX0VOR0lO RV9CVVNZKGQtPmNsYXNzLCBkLT5pbnN0YW5jZSksCisJCQkJLTEpOwogCWlmIChndC0+ZmQgPCAw KQogCQlyZXR1cm4gLTE7CiAKLQlpZiAocGVyZl9pOTE1X29wZW4oSTkxNV9QRVJGX1JJTkdfV0FJ VCgwKSwgZ3QtPmZkKSA+PSAwKQorCWlmIChwZXJmX2k5MTVfb3BlbihJOTE1X1BNVV9FTkdJTkVf V0FJVChkLT5jbGFzcywgZC0+aW5zdGFuY2UpLAorCQkJICAgZ3QtPmZkKSA+PSAwKQogCQlndC0+ aGF2ZV93YWl0ID0gMTsKIAotCWlmIChwZXJmX2k5MTVfb3BlbihJOTE1X1BFUkZfUklOR19TRU1B KDApLCBndC0+ZmQpID49IDApCisJaWYgKHBlcmZfaTkxNV9vcGVuKEk5MTVfUE1VX0VOR0lORV9T RU1BKGQtPmNsYXNzLCBkLT5pbnN0YW5jZSksCisJCQkgICBndC0+ZmQpID49IDApCiAJCWd0LT5o YXZlX3NlbWEgPSAxOwogCi0JZ3QtPnJpbmdbMF0ubmFtZSA9IG5hbWVzWzBdOworCWd0LT5yaW5n WzBdLm5hbWUgPSBkLT5uYW1lOwogCWd0LT5udW1fcmluZ3MgPSAxOwogCi0JZm9yIChuID0gMTsg bmFtZXNbbl07IG4rKykgewotCQlpZiAocGVyZl9pOTE1X29wZW4oSTkxNV9QRVJGX1JJTkdfQlVT WShuKSwgZ3QtPmZkKSA+PSAwKSB7CisJZm9yIChkKys7IGQtPm5hbWU7IGQrKykgeworCQlpZiAo cGVyZl9pOTE1X29wZW4oSTkxNV9QTVVfRU5HSU5FX0JVU1koZC0+Y2xhc3MsIGQtPmluc3RhbmNl KSwKKwkJCQkgICBndC0+ZmQpID49IDApIHsKIAkJCWlmIChndC0+aGF2ZV93YWl0ICYmCi0JCQkg ICAgcGVyZl9pOTE1X29wZW4oSTkxNV9QRVJGX1JJTkdfV0FJVChuKSwgZ3QtPmZkKSA8IDApCisJ CQkgICAgcGVyZl9pOTE1X29wZW4oSTkxNV9QTVVfRU5HSU5FX1dBSVQoZC0+Y2xhc3MsCisJCQkJ CQkJCWQtPmluc3RhbmNlKSwKKwkJCQkJICAgZ3QtPmZkKSA8IDApCiAJCQkJcmV0dXJuIC0xOwog CiAJCQlpZiAoZ3QtPmhhdmVfc2VtYSAmJgotCQkJICAgIHBlcmZfaTkxNV9vcGVuKEk5MTVfUEVS Rl9SSU5HX1NFTUEobiksIGd0LT5mZCkgPCAwKQorCQkJICAgIHBlcmZfaTkxNV9vcGVuKEk5MTVf UE1VX0VOR0lORV9TRU1BKGQtPmNsYXNzLAorCQkJCQkJCQlkLT5pbnN0YW5jZSksCisJCQkJCSAg IGd0LT5mZCkgPCAwKQogCQkJCXJldHVybiAtMTsKIAotCQkJZ3QtPnJpbmdbZ3QtPm51bV9yaW5n cysrXS5uYW1lID0gbmFtZXNbbl07CisJCQlndC0+cmluZ1tndC0+bnVtX3JpbmdzKytdLm5hbWUg PSBkLT5uYW1lOworcHJpbnRmKCIlcyBidXN5ID0gJXhcbiIsIGQtPm5hbWUsIEk5MTVfUE1VX0VO R0lORV9CVVNZKGQtPmNsYXNzLCBkLT5pbnN0YW5jZSkpOwogCQl9CiAJfQogCmRpZmYgLS1naXQg YS9vdmVybGF5L3BlcmYuaCBiL292ZXJsYXkvcGVyZi5oCmluZGV4IGM0NGU2NWY5NzM0Yy4uMjI3 MGY0MzVmYmMzIDEwMDY0NAotLS0gYS9vdmVybGF5L3BlcmYuaAorKysgYi9vdmVybGF5L3BlcmYu aApAQCAtMyw0MSArMyw1NSBAQAogCiAjaW5jbHVkZSA8bGludXgvcGVyZl9ldmVudC5oPgogCi0j ZGVmaW5lIEk5MTVfU0FNUExFX0JVU1kJMAotI2RlZmluZSBJOTE1X1NBTVBMRV9XQUlUCTEKLSNk ZWZpbmUgSTkxNV9TQU1QTEVfU0VNQQkyCitlbnVtIGRybV9pOTE1X2dlbV9lbmdpbmVfY2xhc3Mg eworCUk5MTVfRU5HSU5FX0NMQVNTX09USEVSID0gMCwKKwlJOTE1X0VOR0lORV9DTEFTU19SRU5E RVIgPSAxLAorCUk5MTVfRU5HSU5FX0NMQVNTX0NPUFkgPSAyLAorCUk5MTVfRU5HSU5FX0NMQVNT X1ZJREVPID0gMywKKwlJOTE1X0VOR0lORV9DTEFTU19WSURFT19FTkhBTkNFID0gNCwKKwlJOTE1 X0VOR0lORV9DTEFTU19NQVggLyogbm9uLUFCSSAqLworfTsKIAotI2RlZmluZSBJOTE1X1NBTVBM RV9SQ1MJCTAKLSNkZWZpbmUgSTkxNV9TQU1QTEVfVkNTCQkxCi0jZGVmaW5lIEk5MTVfU0FNUExF X0JDUwkJMgotI2RlZmluZSBJOTE1X1NBTVBMRV9WRUNTCTMKK2VudW0gZHJtX2k5MTVfcG11X2Vu Z2luZV9zYW1wbGUgeworCUk5MTVfU0FNUExFX1FVRVVFRCA9IDAsCisJSTkxNV9TQU1QTEVfQlVT WSA9IDEsCisJSTkxNV9TQU1QTEVfV0FJVCA9IDIsCisJSTkxNV9TQU1QTEVfU0VNQSA9IDMKK307 CiAKLSNkZWZpbmUgX19JOTE1X1BFUkZfQ09VTlQocmluZywgaWQpICgocmluZykgPDwgNCB8IChp ZCkpCisjZGVmaW5lIEk5MTVfUE1VX1NBTVBMRV9CSVRTICg0KQorI2RlZmluZSBJOTE1X1BNVV9T QU1QTEVfTUFTSyAoMHhmKQorI2RlZmluZSBJOTE1X1BNVV9TQU1QTEVfSU5TVEFOQ0VfQklUUyAo OCkKKyNkZWZpbmUgSTkxNV9QTVVfQ0xBU1NfU0hJRlQgXAorCShJOTE1X1BNVV9TQU1QTEVfQklU UyArIEk5MTVfUE1VX1NBTVBMRV9JTlNUQU5DRV9CSVRTKQogCi0jZGVmaW5lIEk5MTVfUEVSRl9D T1VOVF9SQ1NfQlVTWSBfX0k5MTVfUEVSRl9DT1VOVChJOTE1X1NBTVBMRV9SQ1MsIEk5MTVfU0FN UExFX0JVU1kpCi0jZGVmaW5lIEk5MTVfUEVSRl9DT1VOVF9SQ1NfV0FJVCBfX0k5MTVfUEVSRl9D T1VOVChJOTE1X1NBTVBMRV9SQ1MsIEk5MTVfU0FNUExFX1dBSVQpCi0jZGVmaW5lIEk5MTVfUEVS Rl9DT1VOVF9SQ1NfU0VNQSBfX0k5MTVfUEVSRl9DT1VOVChJOTE1X1NBTVBMRV9SQ1MsIEk5MTVf U0FNUExFX1NFTUEpCisjZGVmaW5lIF9fSTkxNV9QTVVfRU5HSU5FKGNsYXNzLCBpbnN0YW5jZSwg c2FtcGxlKSBcCisJKChjbGFzcykgPDwgSTkxNV9QTVVfQ0xBU1NfU0hJRlQgfCBcCisJKGluc3Rh bmNlKSA8PCBJOTE1X1BNVV9TQU1QTEVfQklUUyB8IFwKKwkoc2FtcGxlKSkKIAotI2RlZmluZSBJ OTE1X1BFUkZfQ09VTlRfVkNTX0JVU1kgX19JOTE1X1BFUkZfQ09VTlQoSTkxNV9TQU1QTEVfVkNT LCBJOTE1X1NBTVBMRV9CVVNZKQotI2RlZmluZSBJOTE1X1BFUkZfQ09VTlRfVkNTX1dBSVQgX19J OTE1X1BFUkZfQ09VTlQoSTkxNV9TQU1QTEVfVkNTLCBJOTE1X1NBTVBMRV9XQUlUKQotI2RlZmlu ZSBJOTE1X1BFUkZfQ09VTlRfVkNTX1NFTUEgX19JOTE1X1BFUkZfQ09VTlQoSTkxNV9TQU1QTEVf VkNTLCBJOTE1X1NBTVBMRV9TRU1BKQorI2RlZmluZSBJOTE1X1BNVV9FTkdJTkVfUVVFVUVEKGNs YXNzLCBpbnN0YW5jZSkgXAorCV9fSTkxNV9QTVVfRU5HSU5FKGNsYXNzLCBpbnN0YW5jZSwgSTkx NV9TQU1QTEVfUVVFVUVEKQogCi0jZGVmaW5lIEk5MTVfUEVSRl9DT1VOVF9CQ1NfQlVTWSBfX0k5 MTVfUEVSRl9DT1VOVChJOTE1X1NBTVBMRV9CQ1MsIEk5MTVfU0FNUExFX0JVU1kpCi0jZGVmaW5l IEk5MTVfUEVSRl9DT1VOVF9CQ1NfV0FJVCBfX0k5MTVfUEVSRl9DT1VOVChJOTE1X1NBTVBMRV9C Q1MsIEk5MTVfU0FNUExFX1dBSVQpCi0jZGVmaW5lIEk5MTVfUEVSRl9DT1VOVF9CQ1NfU0VNQSBf X0k5MTVfUEVSRl9DT1VOVChJOTE1X1NBTVBMRV9CQ1MsIEk5MTVfU0FNUExFX1NFTUEpCisjZGVm aW5lIEk5MTVfUE1VX0VOR0lORV9CVVNZKGNsYXNzLCBpbnN0YW5jZSkgXAorCV9fSTkxNV9QTVVf RU5HSU5FKGNsYXNzLCBpbnN0YW5jZSwgSTkxNV9TQU1QTEVfQlVTWSkKIAotI2RlZmluZSBJOTE1 X1BFUkZfQ09VTlRfVkVDU19CVVNZIF9fSTkxNV9QRVJGX0NPVU5UKEk5MTVfU0FNUExFX1ZFQ1Ms IEk5MTVfU0FNUExFX0JVU1kpCi0jZGVmaW5lIEk5MTVfUEVSRl9DT1VOVF9WRUNTX1dBSVQgX19J OTE1X1BFUkZfQ09VTlQoSTkxNV9TQU1QTEVfVkVDUywgSTkxNV9TQU1QTEVfV0FJVCkKLSNkZWZp bmUgSTkxNV9QRVJGX0NPVU5UX1ZFQ1NfU0VNQSBfX0k5MTVfUEVSRl9DT1VOVChJOTE1X1NBTVBM RV9WRUNTLCBJOTE1X1NBTVBMRV9TRU1BKQorI2RlZmluZSBJOTE1X1BNVV9FTkdJTkVfV0FJVChj bGFzcywgaW5zdGFuY2UpIFwKKwlfX0k5MTVfUE1VX0VOR0lORShjbGFzcywgaW5zdGFuY2UsIEk5 MTVfU0FNUExFX1dBSVQpCiAKLSNkZWZpbmUgSTkxNV9QRVJGX0FDVFVBTF9GUkVRVUVOQ1kgMzIK LSNkZWZpbmUgSTkxNV9QRVJGX1JFUVVFU1RFRF9GUkVRVUVOQ1kgMzMKLSNkZWZpbmUgSTkxNV9Q RVJGX0VORVJHWSAzNAotI2RlZmluZSBJOTE1X1BFUkZfSU5URVJSVVBUUyAzNQorI2RlZmluZSBJ OTE1X1BNVV9FTkdJTkVfU0VNQShjbGFzcywgaW5zdGFuY2UpIFwKKwlfX0k5MTVfUE1VX0VOR0lO RShjbGFzcywgaW5zdGFuY2UsIEk5MTVfU0FNUExFX1NFTUEpCiAKLSNkZWZpbmUgSTkxNV9QRVJG X1JDNl9SRVNJREVOQ1kJCTQwCi0jZGVmaW5lIEk5MTVfUEVSRl9SQzZwX1JFU0lERU5DWQk0MQot I2RlZmluZSBJOTE1X1BFUkZfUkM2cHBfUkVTSURFTkNZCTQyCisjZGVmaW5lIF9fSTkxNV9QTVVf T1RIRVIoeCkgKF9fSTkxNV9QTVVfRU5HSU5FKDB4ZmYsIDB4ZmYsIDB4ZikgKyAxICsgKHgpKQor CisjZGVmaW5lIEk5MTVfUE1VX0FDVFVBTF9GUkVRVUVOQ1kgCV9fSTkxNV9QTVVfT1RIRVIoMCkK KyNkZWZpbmUgSTkxNV9QTVVfUkVRVUVTVEVEX0ZSRVFVRU5DWQlfX0k5MTVfUE1VX09USEVSKDEp CisjZGVmaW5lIEk5MTVfUE1VX0VORVJHWQkJCV9fSTkxNV9QTVVfT1RIRVIoMikKKyNkZWZpbmUg STkxNV9QTVVfSU5URVJSVVBUUwkJX19JOTE1X1BNVV9PVEhFUigzKQorCisjZGVmaW5lIEk5MTVf UE1VX1JDNl9SRVNJREVOQ1kJCV9fSTkxNV9QTVVfT1RIRVIoNCkKKyNkZWZpbmUgSTkxNV9QTVVf UkM2cF9SRVNJREVOQ1kJCV9fSTkxNV9QTVVfT1RIRVIoNSkKKyNkZWZpbmUgSTkxNV9QTVVfUkM2 cHBfUkVTSURFTkNZCV9fSTkxNV9QTVVfT1RIRVIoNikKIAogc3RhdGljIGlubGluZSBpbnQKIHBl cmZfZXZlbnRfb3BlbihzdHJ1Y3QgcGVyZl9ldmVudF9hdHRyICphdHRyLApkaWZmIC0tZ2l0IGEv b3ZlcmxheS9wb3dlci5jIGIvb3ZlcmxheS9wb3dlci5jCmluZGV4IDJmMTUyMWI4MmNkNi4uYjg0 MDgyZThjZWYwIDEwMDY0NAotLS0gYS9vdmVybGF5L3Bvd2VyLmMKKysrIGIvb3ZlcmxheS9wb3dl ci5jCkBAIC00Niw3ICs0Niw3IEBAIHN0YXRpYyBpbnQgcGVyZl9vcGVuKHZvaWQpCiAJYXR0ci50 eXBlID0gaTkxNV90eXBlX2lkKCk7CiAJaWYgKGF0dHIudHlwZSA9PSAwKQogCQlyZXR1cm4gLTE7 Ci0JYXR0ci5jb25maWcgPSBJOTE1X1BFUkZfRU5FUkdZOworCWF0dHIuY29uZmlnID0gSTkxNV9Q TVVfRU5FUkdZOwogCiAJYXR0ci5yZWFkX2Zvcm1hdCA9IFBFUkZfRk9STUFUX1RPVEFMX1RJTUVf RU5BQkxFRDsKIAlyZXR1cm4gcGVyZl9ldmVudF9vcGVuKCZhdHRyLCAtMSwgMCwgLTEsIDApOwpk aWZmIC0tZ2l0IGEvb3ZlcmxheS9yYzYuYyBiL292ZXJsYXkvcmM2LmMKaW5kZXggZDcwNDdjMmY0 ODgwLi40ODA5YmJkOGIwYjcgMTAwNjQ0Ci0tLSBhL292ZXJsYXkvcmM2LmMKKysrIGIvb3Zlcmxh eS9yYzYuYwpAQCAtNjAsMTUgKzYwLDE1IEBAIHN0YXRpYyBpbnQgcGVyZl9vcGVuKHVuc2lnbmVk ICpmbGFncykKIHsKIAlpbnQgZmQ7CiAKLQlmZCA9IHBlcmZfaTkxNV9vcGVuKEk5MTVfUEVSRl9S QzZfUkVTSURFTkNZLCAtMSk7CisJZmQgPSBwZXJmX2k5MTVfb3BlbihJOTE1X1BNVV9SQzZfUkVT SURFTkNZLCAtMSk7CiAJaWYgKGZkIDwgMCkKIAkJcmV0dXJuIC0xOwogCiAJKmZsYWdzIHw9IFJD NjsKLQlpZiAocGVyZl9pOTE1X29wZW4oSTkxNV9QRVJGX1JDNnBfUkVTSURFTkNZLCBmZCkgPj0g MCkKKwlpZiAocGVyZl9pOTE1X29wZW4oSTkxNV9QTVVfUkM2cF9SRVNJREVOQ1ksIGZkKSA+PSAw KQogCQkqZmxhZ3MgfD0gUkM2cDsKIAotCWlmIChwZXJmX2k5MTVfb3BlbihJOTE1X1BFUkZfUkM2 cHBfUkVTSURFTkNZLCBmZCkgPj0gMCkKKwlpZiAocGVyZl9pOTE1X29wZW4oSTkxNV9QTVVfUkM2 cHBfUkVTSURFTkNZLCBmZCkgPj0gMCkKIAkJKmZsYWdzIHw9IFJDNnBwOwogCiAJcmV0dXJuIGZk OwotLSAKMi45LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=