From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1FF43C433ED for ; Thu, 29 Apr 2021 10:35:18 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AE9F661433 for ; Thu, 29 Apr 2021 10:35:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AE9F661433 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 85BF96EDF9; Thu, 29 Apr 2021 10:35:05 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id F1E656EDF2; Thu, 29 Apr 2021 10:35:02 +0000 (UTC) IronPort-SDR: lX167OTxKygp0luEZZOKg3k/VRwH+SaCP63/gLYsOZAKOm47wxr9xDuwsiNQ2HD2iHCbOtaXlG XzfyWJByT3Pw== X-IronPort-AV: E=McAfee;i="6200,9189,9968"; a="184449687" X-IronPort-AV: E=Sophos;i="5.82,259,1613462400"; d="scan'208";a="184449687" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2021 03:35:02 -0700 IronPort-SDR: GkGrFY4GxSNG7oY/bLfsLp8xYNGmk7kPFpIHqh0jwICyK7W5r2dMl6ZySJc3n+MvsvZFTw/uyU DtXeVoG4YSmQ== X-IronPort-AV: E=Sophos;i="5.82,259,1613462400"; d="scan'208";a="458694151" Received: from sbfennel-mobl.ger.corp.intel.com (HELO mwauld-desk1.ger.corp.intel.com) ([10.252.12.78]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2021 03:34:59 -0700 From: Matthew Auld To: intel-gfx@lists.freedesktop.org Date: Thu, 29 Apr 2021 11:30:50 +0100 Message-Id: <20210429103056.407067-3-matthew.auld@intel.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210429103056.407067-1-matthew.auld@intel.com> References: <20210429103056.407067-1-matthew.auld@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v2 3/9] drm/i915/query: Expose memory regions through the query uAPI X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Abdiel Janulgue , =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , dri-devel@lists.freedesktop.org, Kenneth Graunke , mesa-dev@lists.freedesktop.org, Lionel Landwerlin , Daniel Vetter Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogQWJkaWVsIEphbnVsZ3VlIDxhYmRpZWwuamFudWxndWVAbGludXguaW50ZWwuY29tPgoK UmV0dXJucyB0aGUgYXZhaWxhYmxlIG1lbW9yeSByZWdpb24gYXJlYXMgc3VwcG9ydGVkIGJ5IHRo ZSBIVy4KCnYyKERhbmllbCAmIEphc29uKToKICAgIC0gQWRkIHNvbWUga2VybmVsLWRvYywgaW5j bHVkaW5nIGV4YW1wbGUgdXNhZ2UuCiAgICAtIERyb3AgYWxsIHRoZSBleHRyYSByc3ZkCnYzKEph c29uICYgVHZydGtvKQogICAgLSBhZGQgYmFjayByc3ZkCgpTaWduZWQtb2ZmLWJ5OiBBYmRpZWwg SmFudWxndWUgPGFiZGllbC5qYW51bGd1ZUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6 IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4KQ2M6IEpvb25hcyBMYWh0aW5l biA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IFRob21hcyBIZWxsc3Ryw7Zt IDx0aG9tYXMuaGVsbHN0cm9tQGxpbnV4LmludGVsLmNvbT4KQ2M6IERhbmllbGUgQ2VyYW9sbyBT cHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+CkNjOiBMaW9uZWwgTGFuZHdl cmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBsaW51eC5pbnRlbC5jb20+CkNjOiBKb24gQmxvb21m aWVsZCA8am9uLmJsb29tZmllbGRAaW50ZWwuY29tPgpDYzogSm9yZGFuIEp1c3RlbiA8am9yZGFu LmwuanVzdGVuQGludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50 ZWwuY29tPgpDYzogS2VubmV0aCBHcmF1bmtlIDxrZW5uZXRoQHdoaXRlY2FwZS5vcmc+CkNjOiBK YXNvbiBFa3N0cmFuZCA8amFzb25Aamxla3N0cmFuZC5uZXQ+CkNjOiBEYXZlIEFpcmxpZSA8YWly bGllZEBnbWFpbC5jb20+CkNjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCkNjOiBt ZXNhLWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKUmV2aWV3ZWQtYnk6IEtlbm5ldGggR3JhdW5r ZSA8a2VubmV0aEB3aGl0ZWNhcGUub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cXVlcnkuYyAgICAgICAgICB8ICA1OSArKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX21lbW9yeV9yZWdpb24uaCB8ICAgOCArLQogaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5o ICAgICAgICAgICAgICAgIHwgMTM0ICsrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFu Z2VkLCAxOTYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3F1ZXJ5LmMKaW5kZXggZmVkMzM3YWQ3YjY4Li41ZTJiOTA5ODI3ZjQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3F1ZXJ5LmMKQEAgLTQxOSwxMSArNDE5LDcwIEBAIHN0YXRpYyBpbnQgcXVlcnlfcGVy Zl9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJfQogfQogCitzdGF0aWMg aW50IHF1ZXJ5X21lbXJlZ2lvbl9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAor CQkJCXN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtICpxdWVyeV9pdGVtKQoreworCXN0cnVjdCBk cm1faTkxNV9xdWVyeV9tZW1vcnlfcmVnaW9ucyBfX3VzZXIgKnF1ZXJ5X3B0ciA9CisJCXU2NF90 b191c2VyX3B0cihxdWVyeV9pdGVtLT5kYXRhX3B0cik7CisJc3RydWN0IGRybV9pOTE1X21lbW9y eV9yZWdpb25faW5mbyBfX3VzZXIgKmluZm9fcHRyID0KKwkJJnF1ZXJ5X3B0ci0+cmVnaW9uc1sw XTsKKwlzdHJ1Y3QgZHJtX2k5MTVfbWVtb3J5X3JlZ2lvbl9pbmZvIGluZm8gPSB7IH07CisJc3Ry dWN0IGRybV9pOTE1X3F1ZXJ5X21lbW9yeV9yZWdpb25zIHF1ZXJ5OworCXN0cnVjdCBpbnRlbF9t ZW1vcnlfcmVnaW9uICptcjsKKwl1MzIgdG90YWxfbGVuZ3RoOworCWludCByZXQsIGlkLCBpOwor CisJaWYgKHF1ZXJ5X2l0ZW0tPmZsYWdzICE9IDApCisJCXJldHVybiAtRUlOVkFMOworCisJdG90 YWxfbGVuZ3RoID0gc2l6ZW9mKHF1ZXJ5KTsKKwlmb3JfZWFjaF9tZW1vcnlfcmVnaW9uKG1yLCBp OTE1LCBpZCkgeworCQlpZiAobXItPnByaXZhdGUpCisJCQljb250aW51ZTsKKworCQl0b3RhbF9s ZW5ndGggKz0gc2l6ZW9mKGluZm8pOworCX0KKworCXJldCA9IGNvcHlfcXVlcnlfaXRlbSgmcXVl cnksIHNpemVvZihxdWVyeSksIHRvdGFsX2xlbmd0aCwgcXVlcnlfaXRlbSk7CisJaWYgKHJldCAh PSAwKQorCQlyZXR1cm4gcmV0OworCisJaWYgKHF1ZXJ5Lm51bV9yZWdpb25zKQorCQlyZXR1cm4g LUVJTlZBTDsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHF1ZXJ5LnJzdmQpOyBpKysp IHsKKwkJaWYgKHF1ZXJ5LnJzdmRbaV0pCisJCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlmb3Jf ZWFjaF9tZW1vcnlfcmVnaW9uKG1yLCBpOTE1LCBpZCkgeworCQlpZiAobXItPnByaXZhdGUpCisJ CQljb250aW51ZTsKKworCQlpbmZvLnJlZ2lvbi5tZW1vcnlfY2xhc3MgPSBtci0+dHlwZTsKKwkJ aW5mby5yZWdpb24ubWVtb3J5X2luc3RhbmNlID0gbXItPmluc3RhbmNlOworCQlpbmZvLnByb2Jl ZF9zaXplID0gbXItPnRvdGFsOworCQlpbmZvLnVuYWxsb2NhdGVkX3NpemUgPSBtci0+YXZhaWw7 CisKKwkJaWYgKF9fY29weV90b191c2VyKGluZm9fcHRyLCAmaW5mbywgc2l6ZW9mKGluZm8pKSkK KwkJCXJldHVybiAtRUZBVUxUOworCisJCXF1ZXJ5Lm51bV9yZWdpb25zKys7CisJCWluZm9fcHRy Kys7CisJfQorCisJaWYgKF9fY29weV90b191c2VyKHF1ZXJ5X3B0ciwgJnF1ZXJ5LCBzaXplb2Yo cXVlcnkpKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlyZXR1cm4gdG90YWxfbGVuZ3RoOworfQor CiBzdGF0aWMgaW50ICgqIGNvbnN0IGk5MTVfcXVlcnlfZnVuY3NbXSkoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCQlzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfaXRlbSAqcXVl cnlfaXRlbSkgPSB7CiAJcXVlcnlfdG9wb2xvZ3lfaW5mbywKIAlxdWVyeV9lbmdpbmVfaW5mbywK IAlxdWVyeV9wZXJmX2NvbmZpZywKKwlxdWVyeV9tZW1yZWdpb25faW5mbywKIH07CiAKIGludCBp OTE1X3F1ZXJ5X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVj dCBkcm1fZmlsZSAqZmlsZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X21lbW9yeV9yZWdpb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdp b24uaAppbmRleCA5NDJmYzRmNjg3NjQuLjdjZDhlM2Q2NmE3ZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaApAQCAtMTEsNiArMTEsNyBAQAogI2luY2x1ZGUg PGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvaW8tbWFwcGluZy5oPgogI2luY2x1ZGUg PGRybS9kcm1fbW0uaD4KKyNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KIAogI2luY2x1ZGUgImk5 MTVfYnVkZHkuaCIKIApAQCAtMTksMTIgKzIwLDkgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3Q7CiBzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbjsKIHN0cnVjdCBzZ190YWJsZTsKIAotLyoq Ci0gKiAgQmFzZSBtZW1vcnkgdHlwZQotICovCiBlbnVtIGludGVsX21lbW9yeV90eXBlIHsKLQlJ TlRFTF9NRU1PUllfU1lTVEVNID0gMCwKLQlJTlRFTF9NRU1PUllfTE9DQUwsCisJSU5URUxfTUVN T1JZX1NZU1RFTSA9IEk5MTVfTUVNT1JZX0NMQVNTX1NZU1RFTSwKKwlJTlRFTF9NRU1PUllfTE9D QUwgPSBJOTE1X01FTU9SWV9DTEFTU19ERVZJQ0UsCiAJSU5URUxfTUVNT1JZX1NUT0xFTl9TWVNU RU0sCiAJSU5URUxfTUVNT1JZX1NUT0xFTl9MT0NBTCwKIH07CmRpZmYgLS1naXQgYS9pbmNsdWRl L3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXgg NmEzNDI0M2E3NjQ2Li41N2MzNzY2ODBhNjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0v aTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTIyMzAsNiAr MjIzMCw3IEBAIHN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtIHsKICNkZWZpbmUgRFJNX0k5MTVf UVVFUllfVE9QT0xPR1lfSU5GTyAgICAxCiAjZGVmaW5lIERSTV9JOTE1X1FVRVJZX0VOR0lORV9J TkZPCTIKICNkZWZpbmUgRFJNX0k5MTVfUVVFUllfUEVSRl9DT05GSUcgICAgICAzCisjZGVmaW5l IERSTV9JOTE1X1FVRVJZX01FTU9SWV9SRUdJT05TICAgNAogLyogTXVzdCBiZSBrZXB0IGNvbXBh Y3QgLS0gbm8gaG9sZXMgYW5kIHdlbGwgZG9jdW1lbnRlZCAqLwogCiAJLyoqCkBAIC0yNDY0LDYg KzI0NjUsMTM5IEBAIHN0cnVjdCBkcm1faTkxNV9xdWVyeV9wZXJmX2NvbmZpZyB7CiAJX191OCBk YXRhW107CiB9OwogCisvKioKKyAqIGVudW0gZHJtX2k5MTVfZ2VtX21lbW9yeV9jbGFzcyAtIFN1 cHBvcnRlZCBtZW1vcnkgY2xhc3NlcworICovCitlbnVtIGRybV9pOTE1X2dlbV9tZW1vcnlfY2xh c3MgeworCS8qKiBASTkxNV9NRU1PUllfQ0xBU1NfU1lTVEVNOiBTeXN0ZW0gbWVtb3J5ICovCisJ STkxNV9NRU1PUllfQ0xBU1NfU1lTVEVNID0gMCwKKwkvKiogQEk5MTVfTUVNT1JZX0NMQVNTX0RF VklDRTogRGV2aWNlIGxvY2FsLW1lbW9yeSAqLworCUk5MTVfTUVNT1JZX0NMQVNTX0RFVklDRSwK K307CisKKy8qKgorICogc3RydWN0IGRybV9pOTE1X2dlbV9tZW1vcnlfY2xhc3NfaW5zdGFuY2Ug LSBJZGVudGlmeSBwYXJ0aWN1bGFyIG1lbW9yeSByZWdpb24KKyAqLworc3RydWN0IGRybV9pOTE1 X2dlbV9tZW1vcnlfY2xhc3NfaW5zdGFuY2UgeworCS8qKiBAbWVtb3J5X2NsYXNzOiBTZWUgZW51 bSBkcm1faTkxNV9nZW1fbWVtb3J5X2NsYXNzICovCisJX191MTYgbWVtb3J5X2NsYXNzOworCisJ LyoqIEBtZW1vcnlfaW5zdGFuY2U6IFdoaWNoIGluc3RhbmNlICovCisJX191MTYgbWVtb3J5X2lu c3RhbmNlOworfTsKKworLyoqCisgKiBzdHJ1Y3QgZHJtX2k5MTVfbWVtb3J5X3JlZ2lvbl9pbmZv IC0gRGVzY3JpYmVzIG9uZSByZWdpb24gYXMga25vd24gdG8gdGhlCisgKiBkcml2ZXIuCisgKgor ICogTm90ZSB0aGF0IHdlIHJlc2VydmUgc29tZSBzdHVmZiBoZXJlIGZvciBwb3RlbnRpYWwgZnV0 dXJlIHdvcmsuIEFzIGFuIGV4YW1wbGUKKyAqIHdlIG1pZ2h0IHdhbnQgZXhwb3NlIHRoZSBjYXBh YmlsaXRpZXMgZm9yIGEgZ2l2ZW4gcmVnaW9uLCB3aGljaCBjb3VsZCBpbmNsdWRlCisgKiB0aGlu Z3MgbGlrZSBpZiB0aGUgcmVnaW9uIGlzIENQVSBtYXBwYWJsZS9hY2Nlc3NpYmxlLCB3aGF0IGFy ZSB0aGUgc3VwcG9ydGVkCisgKiBtYXBwaW5nIHR5cGVzIGV0Yy4KKyAqCisgKiBOb3RlIHRoYXQg dG8gZXh0ZW5kIHN0cnVjdCBkcm1faTkxNV9tZW1vcnlfcmVnaW9uX2luZm8gYW5kIHN0cnVjdAor ICogZHJtX2k5MTVfcXVlcnlfbWVtb3J5X3JlZ2lvbnMgaW4gdGhlIGZ1dHVyZSB0aGUgcGxhbiBp cyB0byBkbyB0aGUgZm9sbG93aW5nOgorICoKKyAqIC4uIGNvZGUtYmxvY2s6OiBDCisgKgorICoJ c3RydWN0IGRybV9pOTE1X21lbW9yeV9yZWdpb25faW5mbyB7CisgKgkJc3RydWN0IGRybV9pOTE1 X2dlbV9tZW1vcnlfY2xhc3NfaW5zdGFuY2UgcmVnaW9uOworICoJCXVuaW9uIHsKKyAqCQkJX191 MzIgcnN2ZDA7CisgKgkJCV9fdTMyIG5ld190aGluZzE7CisgKgkJfTsKKyAqCQkuLi4KKyAqCQl1 bmlvbiB7CisgKgkJCV9fdTY0IHJzdmQxWzhdOworICoJCQlzdHJ1Y3QgeworICoJCQkJX191NjQg bmV3X3RoaW5nMjsKKyAqCQkJCV9fdTY0IG5ld190aGluZzM7CisgKgkJCQkuLi4KKyAqCQkJfTsK KyAqCQl9OworICoJfTsKKyAqCisgKiBXaXRoIHRoaXMgdGhpbmdzIHNob3VsZCByZW1haW4gc291 cmNlIGNvbXBhdGlibGUgYmV0d2VlbiB2ZXJzaW9ucyBmb3IKKyAqIHVzZXJzcGFjZSwgZXZlbiBh cyB3ZSBhZGQgbmV3IGZpZWxkcy4KKyAqCisgKiBOb3RlIHRoaXMgaXMgdXNpbmcgYm90aCBzdHJ1 Y3QgZHJtX2k5MTVfcXVlcnlfaXRlbSBhbmQgc3RydWN0IGRybV9pOTE1X3F1ZXJ5LgorICogRm9y IHRoaXMgbmV3IHF1ZXJ5IHdlIGFyZSBhZGRpbmcgdGhlIG5ldyBxdWVyeSBpZCBEUk1fSTkxNV9R VUVSWV9NRU1PUllfUkVHSU9OUworICogYXQgJmRybV9pOTE1X3F1ZXJ5X2l0ZW0ucXVlcnlfaWQu CisgKi8KK3N0cnVjdCBkcm1faTkxNV9tZW1vcnlfcmVnaW9uX2luZm8geworCS8qKiBAcmVnaW9u OiBUaGUgY2xhc3M6aW5zdGFuY2UgcGFpciBlbmNvZGluZyAqLworCXN0cnVjdCBkcm1faTkxNV9n ZW1fbWVtb3J5X2NsYXNzX2luc3RhbmNlIHJlZ2lvbjsKKworCS8qKiBAcnN2ZDA6IE1CWiAqLwor CV9fdTMyIHJzdmQwOworCisJLyoqIEBwcm9iZWRfc2l6ZTogTWVtb3J5IHByb2JlZCBieSB0aGUg ZHJpdmVyICgtMSA9IHVua25vd24pICovCisJX191NjQgcHJvYmVkX3NpemU7CisKKwkvKiogQHVu YWxsb2NhdGVkX3NpemU6IEVzdGltYXRlIG9mIG1lbW9yeSByZW1haW5pbmcgKC0xID0gdW5rbm93 bikgKi8KKwlfX3U2NCB1bmFsbG9jYXRlZF9zaXplOworCisJLyoqIEByc3ZkMTogTUJaICovCisg ICAgICAgIF9fdTY0IHJzdmQxWzhdOworfTsKKworLyoqCisgKiBzdHJ1Y3QgZHJtX2k5MTVfcXVl cnlfbWVtb3J5X3JlZ2lvbnMKKyAqCisgKiBUaGUgcmVnaW9uIGluZm8gcXVlcnkgZW51bWVyYXRl cyBhbGwgcmVnaW9ucyBrbm93biB0byB0aGUgZHJpdmVyIGJ5IGZpbGxpbmcKKyAqIGluIGFuIGFy cmF5IG9mIHN0cnVjdCBkcm1faTkxNV9tZW1vcnlfcmVnaW9uX2luZm8gc3RydWN0dXJlcy4KKyAq CisgKiBFeGFtcGxlIGZvciBnZXR0aW5nIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCByZWdpb25zOgor ICoKKyAqIC4uIGNvZGUtYmxvY2s6OiBDCisgKgorICoJc3RydWN0IGRybV9pOTE1X3F1ZXJ5X21l bW9yeV9yZWdpb25zICppbmZvOworICoJc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gaXRlbSA9 IHsKKyAqCQkucXVlcnlfaWQgPSBEUk1fSTkxNV9RVUVSWV9NRU1PUllfUkVHSU9OUzsKKyAqCX07 CisgKglzdHJ1Y3QgZHJtX2k5MTVfcXVlcnkgcXVlcnkgPSB7CisgKgkJLm51bV9pdGVtcyA9IDEs CisgKgkJLml0ZW1zX3B0ciA9ICh1aW50cHRyX3QpJml0ZW0sCisgKgl9OworICoJaW50IGVyciwg aTsKKyAqCisgKgkvLyBGaXJzdCBxdWVyeSB0aGUgc2l6ZSBvZiB0aGUgYmxvYiB3ZSBuZWVkLCB0 aGlzIG5lZWRzIHRvIGJlIGxhcmdlCisgKgkvLyBlbm91Z2ggdG8gaG9sZCBvdXIgYXJyYXkgb2Yg cmVnaW9ucy4gVGhlIGtlcm5lbCB3aWxsIGZpbGwgb3V0IHRoZQorICoJLy8gaXRlbS5sZW5ndGgg Zm9yIHVzLCB3aGljaCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdlIG5lZWQuCisgKgllcnIgPSBp b2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfUVVFUlksICZxdWVyeSk7CisgKglpZiAoZXJyKSAuLi4K KyAqCisgKglpbmZvID0gY2FsbG9jKDEsIGl0ZW0ubGVuZ3RoKTsKKyAqCS8vIE5vdyB0aGF0IHdl IGFsbG9jYXRlZCB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGJ5dGVzLCB3ZSBjYWxsIHRoZSBpb2N0 bAorICoJLy8gYWdhaW4sIHRoaXMgdGltZSB3aXRoIHRoZSBkYXRhX3B0ciBwb2ludGluZyB0byBv dXIgbmV3bHkgYWxsb2NhdGVkCisgKgkvLyBibG9iLCB3aGljaCB0aGUga2VybmVsIGNhbiB0aGVu IHBvcHVsYXRlIHdpdGggdGhlIGFsbCB0aGUgcmVnaW9uIGluZm8uCisgKglpdGVtLmRhdGFfcHRy ID0gKHVpbnRwdHJfdCkmaW5mbywKKyAqCisgKgllcnIgPSBpb2N0bChmZCwgRFJNX0lPQ1RMX0k5 MTVfUVVFUlksICZxdWVyeSk7CisgKglpZiAoZXJyKSAuLi4KKyAqCisgKgkvLyBXZSBjYW4gbm93 IGFjY2VzcyBlYWNoIHJlZ2lvbiBpbiB0aGUgYXJyYXkKKyAqCWZvciAoaSA9IDA7IGkgPCBpbmZv LT5udW1fcmVnaW9uczsgaSsrKSB7CisgKgkJc3RydWN0IGRybV9pOTE1X21lbW9yeV9yZWdpb25f aW5mbyBtciA9IGluZm8tPnJlZ2lvbnNbaV07CisgKgkJdTE2IGNsYXNzID0gbXIucmVnaW9uLmNs YXNzOworICoJCXUxNiBpbnN0YW5jZSA9IG1yLnJlZ2lvbi5pbnN0YW5jZTsKKyAqCisgKgkJLi4u LgorICoJfQorICoKKyAqCWZyZWUoaW5mbyk7CisgKi8KK3N0cnVjdCBkcm1faTkxNV9xdWVyeV9t ZW1vcnlfcmVnaW9ucyB7CisJLyoqIEBudW1fcmVnaW9uczogTnVtYmVyIG9mIHN1cHBvcnRlZCBy ZWdpb25zICovCisJX191MzIgbnVtX3JlZ2lvbnM7CisKKwkvKiogQHJzdmQ6IE1CWiAqLworICAg ICAgICBfX3UzMiByc3ZkWzNdOworCisJLyoqIEByZWdpb25zOiBJbmZvIGFib3V0IGVhY2ggc3Vw cG9ydGVkIHJlZ2lvbiAqLworCXN0cnVjdCBkcm1faTkxNV9tZW1vcnlfcmVnaW9uX2luZm8gcmVn aW9uc1tdOworfTsKKwogI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiB9CiAjZW5kaWYKLS0gCjIu MjYuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==