From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: [PATCH 01/11] drm/radeon: Add H/W debugger kfd->kgd functions Date: Thu, 21 May 2015 00:28:58 +0300 Message-ID: <1432157348-26686-2-git-send-email-oded.gabbay@gmail.com> References: <1432157348-26686-1-git-send-email-oded.gabbay@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f52.google.com (mail-wg0-f52.google.com [74.125.82.52]) by gabe.freedesktop.org (Postfix) with ESMTP id 1CD8F6E6BE for ; Wed, 20 May 2015 14:29:21 -0700 (PDT) Received: by wghq2 with SMTP id q2so66213332wgh.1 for ; Wed, 20 May 2015 14:29:20 -0700 (PDT) In-Reply-To: <1432157348-26686-1-git-send-email-oded.gabbay@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, alexdeucher@gmail.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogWWFpciBTaGFjaGFyIDx5YWlyLnNoYWNoYXJAYW1kLmNvbT4KClRoaXMgcGF0Y2ggYWRk cyBuZXcgaW50ZXJmYWNlIGZ1bmN0aW9ucyB0byB0aGUga2ZkMmtnZCBpbnRlcmZhY2UgZmlsZS4g VGhlCm5ldyBmdW5jdGlvbnMgYWxsb3cgdG8gcGVyZm9ybSBIL1cgZGVidWdnZXIgb3BlcmF0aW9u cyBieSB3cml0aW5nIHRvIEdQVQpyZWdpc3RlcnMuCgpTaWduZWQtb2ZmLWJ5OiBZYWlyIFNoYWNo YXIgPHlhaXIuc2hhY2hhckBhbWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBPZGVkIEdhYmJheSA8b2Rl ZC5nYWJiYXlAZ21haWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9rZ2Rf a2ZkX2ludGVyZmFjZS5oIHwgIDEzICsrKwogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWtfcmVn LmggICAgICAgICAgICAgICAgfCAgNTYgKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9rZmQuYyAgICAgICAgICAgICB8IDExMyArKysrKysrKysrKysrKysrKysrKysr KysKIDMgZmlsZXMgY2hhbmdlZCwgMTgxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUva2dkX2tmZF9pbnRlcmZhY2Uu aCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9rZ2Rfa2ZkX2ludGVyZmFjZS5oCmluZGV4 IDRlYTIxYWUuLmFmZGUxYjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVk ZS9rZ2Rfa2ZkX2ludGVyZmFjZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9r Z2Rfa2ZkX2ludGVyZmFjZS5oCkBAIC0xNjMsNiArMTYzLDE5IEBAIHN0cnVjdCBrZmQya2dkX2Nh bGxzIHsKIAlpbnQgKCpocWRfc2RtYV9kZXN0cm95KShzdHJ1Y3Qga2dkX2RldiAqa2dkLCB2b2lk ICptcWQsCiAJCQkJdW5zaWduZWQgaW50IHRpbWVvdXQpOwogCisJaW50ICgqYWRkcmVzc193YXRj aF9kaXNhYmxlKShzdHJ1Y3Qga2dkX2RldiAqa2dkKTsKKwlpbnQgKCphZGRyZXNzX3dhdGNoX2V4 ZWN1dGUpKHN0cnVjdCBrZ2RfZGV2ICprZ2QsCisJCQkJCXVuc2lnbmVkIGludCB3YXRjaF9wb2lu dF9pZCwKKwkJCQkJdWludDMyX3QgY250bF92YWwsCisJCQkJCXVpbnQzMl90IGFkZHJfaGksCisJ CQkJCXVpbnQzMl90IGFkZHJfbG8pOworCWludCAoKndhdmVfY29udHJvbF9leGVjdXRlKShzdHJ1 Y3Qga2dkX2RldiAqa2dkLAorCQkJCQl1aW50MzJfdCBnZnhfaW5kZXhfdmFsLAorCQkJCQl1aW50 MzJfdCBzcV9jbWQpOworCXVpbnQzMl90ICgqYWRkcmVzc193YXRjaF9nZXRfb2Zmc2V0KShzdHJ1 Y3Qga2dkX2RldiAqa2dkLAorCQkJCQl1bnNpZ25lZCBpbnQgd2F0Y2hfcG9pbnRfaWQsCisJCQkJ CXVuc2lnbmVkIGludCByZWdfb2Zmc2V0KTsKKwogCXVpbnQxNl90ICgqZ2V0X2Z3X3ZlcnNpb24p KHN0cnVjdCBrZ2RfZGV2ICprZ2QsCiAJCQkJZW51bSBrZ2RfZW5naW5lX3R5cGUgdHlwZSk7CiB9 OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWtfcmVnLmggYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL2Npa19yZWcuaAppbmRleCAwZWM1ZDUzLi40ZTg4M2ZkIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npa19yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL2Npa19yZWcuaApAQCAtMTQ5LDEwICsxNDksMzAgQEAKIAogI2RlZmluZSBLRkRf Q0lLX1NETUFfUVVFVUVfT0ZGU0VUCQkweDIwMAogCisjZGVmaW5lIFNRX0lORF9JTkRFWAkJCQkJ MHg4REUwCisjZGVmaW5lIFNRX0NNRAkJCQkJCTB4OERFQworI2RlZmluZSBTUV9JTkRfREFUQQkJ CQkJMHg4REU0CisKKy8qCisgKiBUaGUgVENQX1dBVENIeF94eHh4IGFkZHJlc3NlcyB0aGF0IGFy ZSBzaG93biBoZXJlIGFyZSBpbiBkd29yZHMsCisgKiBhbmQgdGhhdCdzIHdoeSB0aGV5IGFyZSBt dWx0aXBsaWVkIGJ5IDQKKyAqLworI2RlZmluZSBUQ1BfV0FUQ0gwX0FERFJfSAkJCQkoMHgzMkEw KjQpCisjZGVmaW5lIFRDUF9XQVRDSDFfQUREUl9ICQkJCSgweDMyQTMqNCkKKyNkZWZpbmUgVENQ X1dBVENIMl9BRERSX0gJCQkJKDB4MzJBNio0KQorI2RlZmluZSBUQ1BfV0FUQ0gzX0FERFJfSAkJ CQkoMHgzMkE5KjQpCisjZGVmaW5lIFRDUF9XQVRDSDBfQUREUl9MCQkJCSgweDMyQTEqNCkKKyNk ZWZpbmUgVENQX1dBVENIMV9BRERSX0wJCQkJKDB4MzJBNCo0KQorI2RlZmluZSBUQ1BfV0FUQ0gy X0FERFJfTAkJCQkoMHgzMkE3KjQpCisjZGVmaW5lIFRDUF9XQVRDSDNfQUREUl9MCQkJCSgweDMy QUEqNCkKKyNkZWZpbmUgVENQX1dBVENIMF9DTlRMCQkJCQkoMHgzMkEyKjQpCisjZGVmaW5lIFRD UF9XQVRDSDFfQ05UTAkJCQkJKDB4MzJBNSo0KQorI2RlZmluZSBUQ1BfV0FUQ0gyX0NOVEwJCQkJ CSgweDMyQTgqNCkKKyNkZWZpbmUgVENQX1dBVENIM19DTlRMCQkJCQkoMHgzMkFCKjQpCisKICNk ZWZpbmUgQ1BDX0lOVF9DTlRMCQkJCQkweEMyRDAKIAogI2RlZmluZSBDUF9IUURfSVFfUlBUUgkJ CQkJMHhDOTcwdQotI2RlZmluZSBBUUxfRU5BQkxFCQkJCQkoMVUgPDwgMCkKICNkZWZpbmUgU0RN QTBfUkxDMF9SQl9DTlRMCQkJCTB4RDQwMHUKICNkZWZpbmUJU0RNQV9SQl9WTUlEKHgpCQkJCQko eCA8PCAyNCkKICNkZWZpbmUJU0RNQTBfUkxDMF9SQl9CQVNFCQkJCTB4RDQwNHUKQEAgLTE4Niw0 ICsyMDYsMzggQEAKICNkZWZpbmUJU0RNQTBfQ05UTAkJCQkJMHhEMDEwCiAjZGVmaW5lCVNETUEx X0NOVEwJCQkJCTB4RDgxMAogCitlbnVtIHsKKwlNQVhfVFJBUElEID0gOCwJCS8qIDMgYml0cyBp biB0aGUgYml0ZmllbGQuICAqLworCU1BWF9XQVRDSF9BRERSRVNTRVMgPSA0Cit9OworCitlbnVt IHsKKwlBRERSRVNTX1dBVENIX1JFR19BRERSX0hJID0gMCwKKwlBRERSRVNTX1dBVENIX1JFR19B RERSX0xPLAorCUFERFJFU1NfV0FUQ0hfUkVHX0NOVEwsCisJQUREUkVTU19XQVRDSF9SRUdfTUFY Cit9OworCitlbnVtIHsJCQkJLyogIG5vdCBkZWZpbmVkIGluIHRoZSBDSS9LViByZWcgZmlsZSAg Ki8KKwlBRERSRVNTX1dBVENIX1JFR19DTlRMX0FUQ19CSVQgPSAweDEwMDAwMDAwVUwsCisJQURE UkVTU19XQVRDSF9SRUdfQ05UTF9ERUZBVUxUX01BU0sgPSAweDAwRkZGRkZGLAorCUFERFJFU1Nf V0FUQ0hfUkVHX0FERExPV19NQVNLX0VYVEVOU0lPTiA9IDB4MDMwMDAwMDAsCisJLyogZXh0ZW5k IHRoZSBtYXNrIHRvIDI2IGJpdHMgaW4gb3JkZXIgdG8gbWF0Y2ggdGhlIGxvdyBhZGRyZXNzIGZp ZWxkICovCisJQUREUkVTU19XQVRDSF9SRUdfQURETE9XX1NISUZUID0gNiwKKwlBRERSRVNTX1dB VENIX1JFR19BRERISUdIX01BU0sgPSAweEZGRkYKK307CisKK3VuaW9uIFRDUF9XQVRDSF9DTlRM X0JJVFMgeworCXN0cnVjdCB7CisJCXVpbnQzMl90IG1hc2s6MjQ7CisJCXVpbnQzMl90IHZtaWQ6 NDsKKwkJdWludDMyX3QgYXRjOjE7CisJCXVpbnQzMl90IG1vZGU6MjsKKwkJdWludDMyX3QgdmFs aWQ6MTsKKwl9IGJpdGZpZWxkcywgYml0czsKKwl1aW50MzJfdCB1MzJBbGw7CisJc2lnbmVkIGlu dCBpMzJBbGw7CisJZmxvYXQgZjMyQWxsOworfTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9rZmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX2tmZC5jCmluZGV4IDgxM2E0MTYuLmZkOTU5MGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2tmZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX2tmZC5jCkBAIC0zNCw2ICszNCwxMyBAQAogCiAjZGVmaW5lIENJS19QSVBFX1BFUl9N RUMJKDQpCiAKK3N0YXRpYyBjb25zdCB1aW50MzJfdCB3YXRjaFJlZ3NbTUFYX1dBVENIX0FERFJF U1NFUyAqIEFERFJFU1NfV0FUQ0hfUkVHX01BWF0gPSB7CisJVENQX1dBVENIMF9BRERSX0gsIFRD UF9XQVRDSDBfQUREUl9MLCBUQ1BfV0FUQ0gwX0NOVEwsCisJVENQX1dBVENIMV9BRERSX0gsIFRD UF9XQVRDSDFfQUREUl9MLCBUQ1BfV0FUQ0gxX0NOVEwsCisJVENQX1dBVENIMl9BRERSX0gsIFRD UF9XQVRDSDJfQUREUl9MLCBUQ1BfV0FUQ0gyX0NOVEwsCisJVENQX1dBVENIM19BRERSX0gsIFRD UF9XQVRDSDNfQUREUl9MLCBUQ1BfV0FUQ0gzX0NOVEwKK307CisKIHN0cnVjdCBrZ2RfbWVtIHsK IAlzdHJ1Y3QgcmFkZW9uX2JvICpibzsKIAl1aW50NjRfdCBncHVfYWRkcjsKQEAgLTc5LDYgKzg2 LDE4IEBAIHN0YXRpYyBpbnQga2dkX2hxZF9kZXN0cm95KHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVp bnQzMl90IHJlc2V0X3R5cGUsCiBzdGF0aWMgYm9vbCBrZ2RfaHFkX3NkbWFfaXNfb2NjdXBpZWQo c3RydWN0IGtnZF9kZXYgKmtnZCwgdm9pZCAqbXFkKTsKIHN0YXRpYyBpbnQga2dkX2hxZF9zZG1h X2Rlc3Ryb3koc3RydWN0IGtnZF9kZXYgKmtnZCwgdm9pZCAqbXFkLAogCQkJCXVuc2lnbmVkIGlu dCB0aW1lb3V0KTsKK3N0YXRpYyBpbnQga2dkX2FkZHJlc3Nfd2F0Y2hfZGlzYWJsZShzdHJ1Y3Qg a2dkX2RldiAqa2dkKTsKK3N0YXRpYyBpbnQga2dkX2FkZHJlc3Nfd2F0Y2hfZXhlY3V0ZShzdHJ1 Y3Qga2dkX2RldiAqa2dkLAorCQkJCQl1bnNpZ25lZCBpbnQgd2F0Y2hfcG9pbnRfaWQsCisJCQkJ CXVpbnQzMl90IGNudGxfdmFsLAorCQkJCQl1aW50MzJfdCBhZGRyX2hpLAorCQkJCQl1aW50MzJf dCBhZGRyX2xvKTsKK3N0YXRpYyBpbnQga2dkX3dhdmVfY29udHJvbF9leGVjdXRlKHN0cnVjdCBr Z2RfZGV2ICprZ2QsCisJCQkJCXVpbnQzMl90IGdmeF9pbmRleF92YWwsCisJCQkJCXVpbnQzMl90 IHNxX2NtZCk7CitzdGF0aWMgdWludDMyX3Qga2dkX2FkZHJlc3Nfd2F0Y2hfZ2V0X29mZnNldChz dHJ1Y3Qga2dkX2RldiAqa2dkLAorCQkJCQl1bnNpZ25lZCBpbnQgd2F0Y2hfcG9pbnRfaWQsCisJ CQkJCXVuc2lnbmVkIGludCByZWdfb2Zmc2V0KTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBrZmQy a2dkX2NhbGxzIGtmZDJrZ2QgPSB7CiAJLmluaXRfZ3R0X21lbV9hbGxvY2F0aW9uID0gYWxsb2Nf Z3R0X21lbSwKQEAgLTk2LDYgKzExNSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtmZDJrZ2Rf Y2FsbHMga2ZkMmtnZCA9IHsKIAkuaHFkX3NkbWFfaXNfb2NjdXBpZWQgPSBrZ2RfaHFkX3NkbWFf aXNfb2NjdXBpZWQsCiAJLmhxZF9kZXN0cm95ID0ga2dkX2hxZF9kZXN0cm95LAogCS5ocWRfc2Rt YV9kZXN0cm95ID0ga2dkX2hxZF9zZG1hX2Rlc3Ryb3ksCisJLmFkZHJlc3Nfd2F0Y2hfZGlzYWJs ZSA9IGtnZF9hZGRyZXNzX3dhdGNoX2Rpc2FibGUsCisJLmFkZHJlc3Nfd2F0Y2hfZXhlY3V0ZSA9 IGtnZF9hZGRyZXNzX3dhdGNoX2V4ZWN1dGUsCisJLndhdmVfY29udHJvbF9leGVjdXRlID0ga2dk X3dhdmVfY29udHJvbF9leGVjdXRlLAorCS5hZGRyZXNzX3dhdGNoX2dldF9vZmZzZXQgPSBrZ2Rf YWRkcmVzc193YXRjaF9nZXRfb2Zmc2V0LAogCS5nZXRfZndfdmVyc2lvbiA9IGdldF9md192ZXJz aW9uCiB9OwogCkBAIC02NjUsNiArNjg4LDk2IEBAIHN0YXRpYyBpbnQga2dkX2hxZF9zZG1hX2Rl c3Ryb3koc3RydWN0IGtnZF9kZXYgKmtnZCwgdm9pZCAqbXFkLAogCXJldHVybiAwOwogfQogCitz dGF0aWMgaW50IGtnZF9hZGRyZXNzX3dhdGNoX2Rpc2FibGUoc3RydWN0IGtnZF9kZXYgKmtnZCkK K3sKKwl1bmlvbiBUQ1BfV0FUQ0hfQ05UTF9CSVRTIGNudGw7CisJdW5zaWduZWQgaW50IGk7CisK KwljbnRsLnUzMkFsbCA9IDA7CisKKwljbnRsLmJpdGZpZWxkcy52YWxpZCA9IDA7CisJY250bC5i aXRmaWVsZHMubWFzayA9IEFERFJFU1NfV0FUQ0hfUkVHX0NOVExfREVGQVVMVF9NQVNLOworCWNu dGwuYml0ZmllbGRzLmF0YyA9IDE7CisKKwkvKiBUdXJuaW5nIG9mZiB0aGlzIGFkZHJlc3MgdW50 aWwgd2Ugc2V0IGFsbCB0aGUgcmVnaXN0ZXJzICovCisJZm9yIChpID0gMDsgaSA8IE1BWF9XQVRD SF9BRERSRVNTRVM7IGkrKykKKwkJd3JpdGVfcmVnaXN0ZXIoa2dkLAorCQkJCXdhdGNoUmVnc1tp ICogQUREUkVTU19XQVRDSF9SRUdfTUFYICsKKwkJCQkJQUREUkVTU19XQVRDSF9SRUdfQ05UTF0s CisJCQkJY250bC51MzJBbGwpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQga2dkX2Fk ZHJlc3Nfd2F0Y2hfZXhlY3V0ZShzdHJ1Y3Qga2dkX2RldiAqa2dkLAorCQkJCQl1bnNpZ25lZCBp bnQgd2F0Y2hfcG9pbnRfaWQsCisJCQkJCXVpbnQzMl90IGNudGxfdmFsLAorCQkJCQl1aW50MzJf dCBhZGRyX2hpLAorCQkJCQl1aW50MzJfdCBhZGRyX2xvKQoreworCXVuaW9uIFRDUF9XQVRDSF9D TlRMX0JJVFMgY250bDsKKworCWNudGwudTMyQWxsID0gY250bF92YWw7CisKKwkvKiBUdXJuaW5n IG9mZiB0aGlzIHdhdGNoIHBvaW50IHVudGlsIHdlIHNldCBhbGwgdGhlIHJlZ2lzdGVycyAqLwor CWNudGwuYml0ZmllbGRzLnZhbGlkID0gMDsKKwl3cml0ZV9yZWdpc3RlcihrZ2QsCisJCQl3YXRj aFJlZ3Nbd2F0Y2hfcG9pbnRfaWQgKiBBRERSRVNTX1dBVENIX1JFR19NQVggKworCQkJCUFERFJF U1NfV0FUQ0hfUkVHX0NOVExdLAorCQkJY250bC51MzJBbGwpOworCisJd3JpdGVfcmVnaXN0ZXIo a2dkLAorCQkJd2F0Y2hSZWdzW3dhdGNoX3BvaW50X2lkICogQUREUkVTU19XQVRDSF9SRUdfTUFY ICsKKwkJCQlBRERSRVNTX1dBVENIX1JFR19BRERSX0hJXSwKKwkJCWFkZHJfaGkpOworCisJd3Jp dGVfcmVnaXN0ZXIoa2dkLAorCQkJd2F0Y2hSZWdzW3dhdGNoX3BvaW50X2lkICogQUREUkVTU19X QVRDSF9SRUdfTUFYICsKKwkJCQlBRERSRVNTX1dBVENIX1JFR19BRERSX0xPXSwKKwkJCWFkZHJf bG8pOworCisJLyogRW5hYmxlIHRoZSB3YXRjaCBwb2ludCAqLworCWNudGwuYml0ZmllbGRzLnZh bGlkID0gMTsKKworCXdyaXRlX3JlZ2lzdGVyKGtnZCwKKwkJCXdhdGNoUmVnc1t3YXRjaF9wb2lu dF9pZCAqIEFERFJFU1NfV0FUQ0hfUkVHX01BWCArCisJCQkJQUREUkVTU19XQVRDSF9SRUdfQ05U TF0sCisJCQljbnRsLnUzMkFsbCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBrZ2Rf d2F2ZV9jb250cm9sX2V4ZWN1dGUoc3RydWN0IGtnZF9kZXYgKmtnZCwKKwkJCQkJdWludDMyX3Qg Z2Z4X2luZGV4X3ZhbCwKKwkJCQkJdWludDMyX3Qgc3FfY21kKQoreworCXN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2ID0gZ2V0X3JhZGVvbl9kZXZpY2Uoa2dkKTsKKwl1aW50MzJfdCBkYXRhOwor CisJbXV0ZXhfbG9jaygmcmRldi0+Z3JibV9pZHhfbXV0ZXgpOworCisJd3JpdGVfcmVnaXN0ZXIo a2dkLCBHUkJNX0dGWF9JTkRFWCwgZ2Z4X2luZGV4X3ZhbCk7CisJd3JpdGVfcmVnaXN0ZXIoa2dk LCBTUV9DTUQsIHNxX2NtZCk7CisKKwkvKiAgUmVzdG9yZSB0aGUgR1JCTV9HRlhfSU5ERVggcmVn aXN0ZXIgICovCisKKwlkYXRhID0gSU5TVEFOQ0VfQlJPQURDQVNUX1dSSVRFUyB8IFNIX0JST0FE Q0FTVF9XUklURVMgfAorCQlTRV9CUk9BRENBU1RfV1JJVEVTOworCisJd3JpdGVfcmVnaXN0ZXIo a2dkLCBHUkJNX0dGWF9JTkRFWCwgZGF0YSk7CisKKwltdXRleF91bmxvY2soJnJkZXYtPmdyYm1f aWR4X211dGV4KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdWludDMyX3Qga2dkX2FkZHJl c3Nfd2F0Y2hfZ2V0X29mZnNldChzdHJ1Y3Qga2dkX2RldiAqa2dkLAorCQkJCQl1bnNpZ25lZCBp bnQgd2F0Y2hfcG9pbnRfaWQsCisJCQkJCXVuc2lnbmVkIGludCByZWdfb2Zmc2V0KQoreworCXJl dHVybiB3YXRjaFJlZ3Nbd2F0Y2hfcG9pbnRfaWQgKiBBRERSRVNTX1dBVENIX1JFR19NQVggKyBy ZWdfb2Zmc2V0XTsKK30KKwogc3RhdGljIHVpbnQxNl90IGdldF9md192ZXJzaW9uKHN0cnVjdCBr Z2RfZGV2ICprZ2QsIGVudW0ga2dkX2VuZ2luZV90eXBlIHR5cGUpCiB7CiAJc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYgPSAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKikga2dkOwotLSAKMi4xLjAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==