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.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,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 2AAD1C43460 for ; Mon, 26 Apr 2021 09:43:12 +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 CA99261040 for ; Mon, 26 Apr 2021 09:43:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CA99261040 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BB1CA6E526; Mon, 26 Apr 2021 09:43:00 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id E39BE6E18F; Mon, 26 Apr 2021 09:42:56 +0000 (UTC) IronPort-SDR: obLVsInQA+koDup9qwjVdkI7ef0a4thmcMLOcMsAn70yGvTguhvPOAmNiMoGDoaxRyKVPCW8kZ DOu+r8skzsSA== X-IronPort-AV: E=McAfee;i="6200,9189,9965"; a="195861019" X-IronPort-AV: E=Sophos;i="5.82,252,1613462400"; d="scan'208";a="195861019" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2021 02:42:56 -0700 IronPort-SDR: AtcEQv99zM1MXIh1KS5aIX/qRvztmVcV2xNEoOWZb0B5YzaHfFGYc7OeKVy/jNQoPjgFz+GIRA Rty7rnU21+eA== X-IronPort-AV: E=Sophos;i="5.82,252,1613462400"; d="scan'208";a="429334132" Received: from rgunnin1-mobl.ger.corp.intel.com (HELO mwauld-desk1.ger.corp.intel.com) ([10.252.12.201]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2021 02:42:53 -0700 From: Matthew Auld To: intel-gfx@lists.freedesktop.org Subject: [PATCH 3/9] drm/i915/query: Expose memory regions through the query uAPI Date: Mon, 26 Apr 2021 10:38:55 +0100 Message-Id: <20210426093901.28937-3-matthew.auld@intel.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210426093901.28937-1-matthew.auld@intel.com> References: <20210426093901.28937-1-matthew.auld@intel.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Abdiel Janulgue , =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , Daniele Ceraolo Spurio , Jordan Justen , dri-devel@lists.freedesktop.org, Kenneth Graunke , Jon Bloomfield , Jason Ekstrand , mesa-dev@lists.freedesktop.org, Lionel Landwerlin , Daniel Vetter Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogQWJkaWVsIEphbnVsZ3VlIDxhYmRpZWwuamFudWxndWVAbGludXguaW50ZWwuY29tPgoK UmV0dXJucyB0aGUgYXZhaWxhYmxlIG1lbW9yeSByZWdpb24gYXJlYXMgc3VwcG9ydGVkIGJ5IHRo ZSBIVy4KCnYyKERhbmllbCAmIEphc29uKToKICAgIC0gQWRkIHNvbWUga2VybmVsLWRvYywgaW5j bHVkaW5nIGV4YW1wbGUgdXNhZ2UuCiAgICAtIERyb3AgYWxsIHRoZSBleHRyYSByc3ZkCgpTaWdu ZWQtb2ZmLWJ5OiBBYmRpZWwgSmFudWxndWUgPGFiZGllbC5qYW51bGd1ZUBsaW51eC5pbnRlbC5j b20+ClNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4K Q2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6 IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMuaGVsbHN0cm9tQGxpbnV4LmludGVsLmNvbT4KQ2M6 IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+ CkNjOiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBsaW51eC5pbnRlbC5j b20+CkNjOiBKb24gQmxvb21maWVsZCA8am9uLmJsb29tZmllbGRAaW50ZWwuY29tPgpDYzogSm9y ZGFuIEp1c3RlbiA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0ZXIg PGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgpDYzogS2VubmV0aCBHcmF1bmtlIDxrZW5uZXRoQHdo aXRlY2FwZS5vcmc+CkNjOiBKYXNvbiBFa3N0cmFuZCA8amFzb25Aamxla3N0cmFuZC5uZXQ+CkNj OiBEYXZlIEFpcmxpZSA8YWlybGllZEBnbWFpbC5jb20+CkNjOiBkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCkNjOiBtZXNhLWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMgICAgICAgICAgfCAgNTcgKysrKysrKysrKysK IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaCB8ICAgOCArLQogaW5j bHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgICAgIHwgMTA5ICsrKysrKysrKysr KysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxNjkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMKaW5kZXggZmVkMzM3YWQ3YjY4Li4wYjRj YjJlMWExNWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMKQEAgLTQxOSwxMSArNDE5LDY4 IEBAIHN0YXRpYyBpbnQgcXVlcnlfcGVyZl9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsCiAJfQogfQogCitzdGF0aWMgaW50IHF1ZXJ5X21lbXJlZ2lvbl9pbmZvKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LAorCQkJCXN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtICpx dWVyeV9pdGVtKQoreworCXN0cnVjdCBkcm1faTkxNV9xdWVyeV9tZW1vcnlfcmVnaW9ucyBfX3Vz ZXIgKnF1ZXJ5X3B0ciA9CisJCXU2NF90b191c2VyX3B0cihxdWVyeV9pdGVtLT5kYXRhX3B0cik7 CisJc3RydWN0IGRybV9pOTE1X21lbW9yeV9yZWdpb25faW5mbyBfX3VzZXIgKmluZm9fcHRyID0K KwkJJnF1ZXJ5X3B0ci0+cmVnaW9uc1swXTsKKwlzdHJ1Y3QgZHJtX2k5MTVfbWVtb3J5X3JlZ2lv bl9pbmZvIGluZm8gPSB7IH07CisJc3RydWN0IGRybV9pOTE1X3F1ZXJ5X21lbW9yeV9yZWdpb25z IHF1ZXJ5OworCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptcjsKKwl1MzIgdG90YWxfbGVu Z3RoOworCWludCByZXQsIGlkOworCisJaWYgKHF1ZXJ5X2l0ZW0tPmZsYWdzICE9IDApCisJCXJl dHVybiAtRUlOVkFMOworCisJdG90YWxfbGVuZ3RoID0gc2l6ZW9mKHF1ZXJ5KTsKKwlmb3JfZWFj aF9tZW1vcnlfcmVnaW9uKG1yLCBpOTE1LCBpZCkgeworCQlpZiAobXItPnByaXZhdGUpCisJCQlj b250aW51ZTsKKworCQl0b3RhbF9sZW5ndGggKz0gc2l6ZW9mKGluZm8pOworCX0KKworCXJldCA9 IGNvcHlfcXVlcnlfaXRlbSgmcXVlcnksIHNpemVvZihxdWVyeSksIHRvdGFsX2xlbmd0aCwgcXVl cnlfaXRlbSk7CisJaWYgKHJldCAhPSAwKQorCQlyZXR1cm4gcmV0OworCisJaWYgKHF1ZXJ5Lm51 bV9yZWdpb25zKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChxdWVyeS5wYWQpCisJCXJldHVy biAgLUVJTlZBTDsKKworCWZvcl9lYWNoX21lbW9yeV9yZWdpb24obXIsIGk5MTUsIGlkKSB7CisJ CWlmIChtci0+cHJpdmF0ZSkKKwkJCWNvbnRpbnVlOworCisJCWluZm8ucmVnaW9uLm1lbW9yeV9j bGFzcyA9IG1yLT50eXBlOworCQlpbmZvLnJlZ2lvbi5tZW1vcnlfaW5zdGFuY2UgPSBtci0+aW5z dGFuY2U7CisJCWluZm8ucHJvYmVkX3NpemUgPSBtci0+dG90YWw7CisJCWluZm8udW5hbGxvY2F0 ZWRfc2l6ZSA9IG1yLT5hdmFpbDsKKworCQlpZiAoX19jb3B5X3RvX3VzZXIoaW5mb19wdHIsICZp bmZvLCBzaXplb2YoaW5mbykpKQorCQkJcmV0dXJuIC1FRkFVTFQ7CisKKwkJcXVlcnkubnVtX3Jl Z2lvbnMrKzsKKwkJaW5mb19wdHIrKzsKKwl9CisKKwlpZiAoX19jb3B5X3RvX3VzZXIocXVlcnlf cHRyLCAmcXVlcnksIHNpemVvZihxdWVyeSkpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCXJldHVy biB0b3RhbF9sZW5ndGg7Cit9CisKIHN0YXRpYyBpbnQgKCogY29uc3QgaTkxNV9xdWVyeV9mdW5j c1tdKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJCXN0cnVjdCBkcm1f aTkxNV9xdWVyeV9pdGVtICpxdWVyeV9pdGVtKSA9IHsKIAlxdWVyeV90b3BvbG9neV9pbmZvLAog CXF1ZXJ5X2VuZ2luZV9pbmZvLAogCXF1ZXJ5X3BlcmZfY29uZmlnLAorCXF1ZXJ5X21lbXJlZ2lv bl9pbmZvLAogfTsKIAogaW50IGk5MTVfcXVlcnlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlKQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oCmluZGV4IDk0MmZjNGY2ODc2NC4uN2NkOGUzZDY2YTdm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oCkBAIC0xMSw2 ICsxMSw3IEBACiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9pby1t YXBwaW5nLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9tbS5oPgorI2luY2x1ZGUgPGRybS9pOTE1X2Ry bS5oPgogCiAjaW5jbHVkZSAiaTkxNV9idWRkeS5oIgogCkBAIC0xOSwxMiArMjAsOSBAQCBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKIHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uOwogc3Ry dWN0IHNnX3RhYmxlOwogCi0vKioKLSAqICBCYXNlIG1lbW9yeSB0eXBlCi0gKi8KIGVudW0gaW50 ZWxfbWVtb3J5X3R5cGUgewotCUlOVEVMX01FTU9SWV9TWVNURU0gPSAwLAotCUlOVEVMX01FTU9S WV9MT0NBTCwKKwlJTlRFTF9NRU1PUllfU1lTVEVNID0gSTkxNV9NRU1PUllfQ0xBU1NfU1lTVEVN LAorCUlOVEVMX01FTU9SWV9MT0NBTCA9IEk5MTVfTUVNT1JZX0NMQVNTX0RFVklDRSwKIAlJTlRF TF9NRU1PUllfU1RPTEVOX1NZU1RFTSwKIAlJTlRFTF9NRU1PUllfU1RPTEVOX0xPQ0FMLAogfTsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9k cm0vaTkxNV9kcm0uaAppbmRleCA2YTM0MjQzYTc2NDYuLmM1ZTljNjhjMzEwZCAxMDA2NDQKLS0t IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkx NV9kcm0uaApAQCAtMjIzMCw2ICsyMjMwLDcgQEAgc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0g ewogI2RlZmluZSBEUk1fSTkxNV9RVUVSWV9UT1BPTE9HWV9JTkZPICAgIDEKICNkZWZpbmUgRFJN X0k5MTVfUVVFUllfRU5HSU5FX0lORk8JMgogI2RlZmluZSBEUk1fSTkxNV9RVUVSWV9QRVJGX0NP TkZJRyAgICAgIDMKKyNkZWZpbmUgRFJNX0k5MTVfUVVFUllfTUVNT1JZX1JFR0lPTlMgICA0CiAv KiBNdXN0IGJlIGtlcHQgY29tcGFjdCAtLSBubyBob2xlcyBhbmQgd2VsbCBkb2N1bWVudGVkICov CiAKIAkvKioKQEAgLTI0NjQsNiArMjQ2NSwxMTQgQEAgc3RydWN0IGRybV9pOTE1X3F1ZXJ5X3Bl cmZfY29uZmlnIHsKIAlfX3U4IGRhdGFbXTsKIH07CiAKKy8qKgorICogZW51bSBkcm1faTkxNV9n ZW1fbWVtb3J5X2NsYXNzIC0gU3VwcG9ydGVkIG1lbW9yeSBjbGFzc2VzCisgKi8KK2VudW0gZHJt X2k5MTVfZ2VtX21lbW9yeV9jbGFzcyB7CisJLyoqIEBJOTE1X01FTU9SWV9DTEFTU19TWVNURU06 IFN5c3RlbSBtZW1vcnkgKi8KKwlJOTE1X01FTU9SWV9DTEFTU19TWVNURU0gPSAwLAorCS8qKiBA STkxNV9NRU1PUllfQ0xBU1NfREVWSUNFOiBEZXZpY2UgbG9jYWwtbWVtb3J5ICovCisJSTkxNV9N RU1PUllfQ0xBU1NfREVWSUNFLAorfTsKKworLyoqCisgKiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21l bW9yeV9jbGFzc19pbnN0YW5jZSAtIElkZW50aWZ5IHBhcnRpY3VsYXIgbWVtb3J5IHJlZ2lvbgor ICovCitzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZSB7CisJLyoqIEBt ZW1vcnlfY2xhc3M6IFNlZSBlbnVtIGRybV9pOTE1X2dlbV9tZW1vcnlfY2xhc3MgKi8KKwlfX3Ux NiBtZW1vcnlfY2xhc3M7CisKKwkvKiogQG1lbW9yeV9pbnN0YW5jZTogV2hpY2ggaW5zdGFuY2Ug Ki8KKwlfX3UxNiBtZW1vcnlfaW5zdGFuY2U7Cit9OworCisvKioKKyAqIHN0cnVjdCBkcm1faTkx NV9tZW1vcnlfcmVnaW9uX2luZm8gLSBEZXNjcmliZXMgb25lIHJlZ2lvbiBhcyBrbm93biB0byB0 aGUKKyAqIGRyaXZlci4KKyAqCisgKiBOb3RlIHRoYXQgd2UgcmVzZXJ2ZSBzb21lIHN0dWZmIGhl cmUgZm9yIHBvdGVudGlhbCBmdXR1cmUgd29yay4gQXMgYW4gZXhhbXBsZQorICogd2UgbWlnaHQg d2FudCBleHBvc2UgdGhlIGNhcGFiaWxpdGllcyhzZWUgQGNhcHMpIGZvciBhIGdpdmVuIHJlZ2lv biwgd2hpY2gKKyAqIGNvdWxkIGluY2x1ZGUgdGhpbmdzIGxpa2UgaWYgdGhlIHJlZ2lvbiBpcyBD UFUgbWFwcGFibGUvYWNjZXNzaWJsZSwgd2hhdCBhcmUKKyAqIHRoZSBzdXBwb3J0ZWQgbWFwcGlu ZyB0eXBlcyBldGMuCisgKgorICogTm90ZSB0aGlzIGlzIHVzaW5nIGJvdGggc3RydWN0IGRybV9p OTE1X3F1ZXJ5X2l0ZW0gYW5kIHN0cnVjdCBkcm1faTkxNV9xdWVyeS4KKyAqIEZvciB0aGlzIG5l dyBxdWVyeSB3ZSBhcmUgYWRkaW5nIHRoZSBuZXcgcXVlcnkgaWQgRFJNX0k5MTVfUVVFUllfTUVN T1JZX1JFR0lPTlMKKyAqIGF0ICZkcm1faTkxNV9xdWVyeV9pdGVtLnF1ZXJ5X2lkLgorICovCitz dHJ1Y3QgZHJtX2k5MTVfbWVtb3J5X3JlZ2lvbl9pbmZvIHsKKwkvKiogQHJlZ2lvbjogVGhlIGNs YXNzOmluc3RhbmNlIHBhaXIgZW5jb2RpbmcgKi8KKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21lbW9y eV9jbGFzc19pbnN0YW5jZSByZWdpb247CisKKwkvKiogQHBhZDogTUJaICovCisJX191MzIgcGFk OworCisJLyoqIEBjYXBzOiBNQlogKi8KKwlfX3U2NCBjYXBzOworCisJLyoqIEBwcm9iZWRfc2l6 ZTogTWVtb3J5IHByb2JlZCBieSB0aGUgZHJpdmVyICgtMSA9IHVua25vd24pICovCisJX191NjQg cHJvYmVkX3NpemU7CisKKwkvKiogQHVuYWxsb2NhdGVkX3NpemU6IEVzdGltYXRlIG9mIG1lbW9y eSByZW1haW5pbmcgKC0xID0gdW5rbm93bikgKi8KKwlfX3U2NCB1bmFsbG9jYXRlZF9zaXplOwor fTsKKworLyoqCisgKiBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfbWVtb3J5X3JlZ2lvbnMKKyAqCisg KiBUaGUgcmVnaW9uIGluZm8gcXVlcnkgZW51bWVyYXRlcyBhbGwgcmVnaW9ucyBrbm93biB0byB0 aGUgZHJpdmVyIGJ5IGZpbGxpbmcKKyAqIGluIGFuIGFycmF5IG9mIHN0cnVjdCBkcm1faTkxNV9t ZW1vcnlfcmVnaW9uX2luZm8gc3RydWN0dXJlcy4KKyAqCisgKiBFeGFtcGxlIGZvciBnZXR0aW5n IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCByZWdpb25zOgorICoKKyAqIC4uIGNvZGUtYmxvY2s6OiBD CisgKgorICoJc3RydWN0IGRybV9pOTE1X3F1ZXJ5X21lbW9yeV9yZWdpb25zICppbmZvOworICoJ c3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gaXRlbSA9IHsKKyAqCQkucXVlcnlfaWQgPSBEUk1f STkxNV9RVUVSWV9NRU1PUllfUkVHSU9OUzsKKyAqCX07CisgKglzdHJ1Y3QgZHJtX2k5MTVfcXVl cnkgcXVlcnkgPSB7CisgKgkJLm51bV9pdGVtcyA9IDEsCisgKgkJLml0ZW1zX3B0ciA9ICh1aW50 cHRyX3QpJml0ZW0sCisgKgl9OworICoJaW50IGVyciwgaTsKKyAqCisgKgkvLyBGaXJzdCBxdWVy eSB0aGUgc2l6ZSBvZiB0aGUgYmxvYiB3ZSBuZWVkLCB0aGlzIG5lZWRzIHRvIGJlIGxhcmdlCisg KgkvLyBlbm91Z2ggdG8gaG9sZCBvdXIgYXJyYXkgb2YgcmVnaW9ucy4gVGhlIGtlcm5lbCB3aWxs IGZpbGwgb3V0IHRoZQorICoJLy8gaXRlbS5sZW5ndGggZm9yIHVzLCB3aGljaCBpcyB0aGUgbnVt YmVyIG9mIGJ5dGVzIHdlIG5lZWQuCisgKgllcnIgPSBpb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVf UVVFUlksICZxdWVyeSk7CisgKglpZiAoZXJyKSAuLi4KKyAqCisgKglpbmZvID0gY2FsbG9jKDEs IGl0ZW0ubGVuZ3RoKTsKKyAqCS8vIE5vdyB0aGF0IHdlIGFsbG9jYXRlZCB0aGUgcmVxdWlyZWQg bnVtYmVyIG9mIGJ5dGVzLCB3ZSBjYWxsIHRoZSBpb2N0bAorICoJLy8gYWdhaW4sIHRoaXMgdGlt ZSB3aXRoIHRoZSBkYXRhX3B0ciBwb2ludGluZyB0byBvdXIgbmV3bHkgYWxsb2NhdGVkCisgKgkv LyBibG9iLCB3aGljaCB0aGUga2VybmVsIGNhbiB0aGVuIHBvcHVsYXRlIHdpdGggdGhlIGFsbCB0 aGUgcmVnaW9uIGluZm8uCisgKglpdGVtLmRhdGFfcHRyID0gKHVpbnRwdHJfdCkmaW5mbywKKyAq CisgKgllcnIgPSBpb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfUVVFUlksICZxdWVyeSk7CisgKglp ZiAoZXJyKSAuLi4KKyAqCisgKgkvLyBXZSBjYW4gbm93IGFjY2VzcyBlYWNoIHJlZ2lvbiBpbiB0 aGUgYXJyYXkKKyAqCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5udW1fcmVnaW9uczsgaSsrKSB7Cisg KgkJc3RydWN0IGRybV9pOTE1X21lbW9yeV9yZWdpb25faW5mbyBtciA9IGluZm8tPnJlZ2lvbnNb aV07CisgKgkJdTE2IGNsYXNzID0gbXIucmVnaW9uLmNsYXNzOworICoJCXUxNiBpbnN0YW5jZSA9 IG1yLnJlZ2lvbi5pbnN0YW5jZTsKKyAqCisgKgkJLi4uLgorICoJfQorICoKKyAqCWZyZWUoaW5m byk7CisgKi8KK3N0cnVjdCBkcm1faTkxNV9xdWVyeV9tZW1vcnlfcmVnaW9ucyB7CisJLyoqIEBu dW1fcmVnaW9uczogTnVtYmVyIG9mIHN1cHBvcnRlZCByZWdpb25zICovCisJX191MzIgbnVtX3Jl Z2lvbnM7CisKKwkvKiogQHBhZDogTUJaICovCisJX191MzIgcGFkOworCisJLyoqIEByZWdpb25z OiBJbmZvIGFib3V0IGVhY2ggc3VwcG9ydGVkIHJlZ2lvbiAqLworCXN0cnVjdCBkcm1faTkxNV9t ZW1vcnlfcmVnaW9uX2luZm8gcmVnaW9uc1tdOworfTsKKwogI2lmIGRlZmluZWQoX19jcGx1c3Bs dXMpCiB9CiAjZW5kaWYKLS0gCjIuMjYuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCg== 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.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham 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 F37AFC433B4 for ; Mon, 26 Apr 2021 09:43:10 +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 9A6B661040 for ; Mon, 26 Apr 2021 09:43:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9A6B661040 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 945006E1B6; Mon, 26 Apr 2021 09:42:58 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id E39BE6E18F; Mon, 26 Apr 2021 09:42:56 +0000 (UTC) IronPort-SDR: obLVsInQA+koDup9qwjVdkI7ef0a4thmcMLOcMsAn70yGvTguhvPOAmNiMoGDoaxRyKVPCW8kZ DOu+r8skzsSA== X-IronPort-AV: E=McAfee;i="6200,9189,9965"; a="195861019" X-IronPort-AV: E=Sophos;i="5.82,252,1613462400"; d="scan'208";a="195861019" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2021 02:42:56 -0700 IronPort-SDR: AtcEQv99zM1MXIh1KS5aIX/qRvztmVcV2xNEoOWZb0B5YzaHfFGYc7OeKVy/jNQoPjgFz+GIRA Rty7rnU21+eA== X-IronPort-AV: E=Sophos;i="5.82,252,1613462400"; d="scan'208";a="429334132" Received: from rgunnin1-mobl.ger.corp.intel.com (HELO mwauld-desk1.ger.corp.intel.com) ([10.252.12.201]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2021 02:42:53 -0700 From: Matthew Auld To: intel-gfx@lists.freedesktop.org Date: Mon, 26 Apr 2021 10:38:55 +0100 Message-Id: <20210426093901.28937-3-matthew.auld@intel.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210426093901.28937-1-matthew.auld@intel.com> References: <20210426093901.28937-1-matthew.auld@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 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 bHVkaW5nIGV4YW1wbGUgdXNhZ2UuCiAgICAtIERyb3AgYWxsIHRoZSBleHRyYSByc3ZkCgpTaWdu ZWQtb2ZmLWJ5OiBBYmRpZWwgSmFudWxndWUgPGFiZGllbC5qYW51bGd1ZUBsaW51eC5pbnRlbC5j b20+ClNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4K Q2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6 IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMuaGVsbHN0cm9tQGxpbnV4LmludGVsLmNvbT4KQ2M6 IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+ CkNjOiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBsaW51eC5pbnRlbC5j b20+CkNjOiBKb24gQmxvb21maWVsZCA8am9uLmJsb29tZmllbGRAaW50ZWwuY29tPgpDYzogSm9y ZGFuIEp1c3RlbiA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0ZXIg PGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgpDYzogS2VubmV0aCBHcmF1bmtlIDxrZW5uZXRoQHdo aXRlY2FwZS5vcmc+CkNjOiBKYXNvbiBFa3N0cmFuZCA8amFzb25Aamxla3N0cmFuZC5uZXQ+CkNj OiBEYXZlIEFpcmxpZSA8YWlybGllZEBnbWFpbC5jb20+CkNjOiBkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCkNjOiBtZXNhLWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMgICAgICAgICAgfCAgNTcgKysrKysrKysrKysK IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaCB8ICAgOCArLQogaW5j bHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgICAgIHwgMTA5ICsrKysrKysrKysr KysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxNjkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMKaW5kZXggZmVkMzM3YWQ3YjY4Li4wYjRj YjJlMWExNWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMKQEAgLTQxOSwxMSArNDE5LDY4 IEBAIHN0YXRpYyBpbnQgcXVlcnlfcGVyZl9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsCiAJfQogfQogCitzdGF0aWMgaW50IHF1ZXJ5X21lbXJlZ2lvbl9pbmZvKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LAorCQkJCXN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtICpx dWVyeV9pdGVtKQoreworCXN0cnVjdCBkcm1faTkxNV9xdWVyeV9tZW1vcnlfcmVnaW9ucyBfX3Vz ZXIgKnF1ZXJ5X3B0ciA9CisJCXU2NF90b191c2VyX3B0cihxdWVyeV9pdGVtLT5kYXRhX3B0cik7 CisJc3RydWN0IGRybV9pOTE1X21lbW9yeV9yZWdpb25faW5mbyBfX3VzZXIgKmluZm9fcHRyID0K KwkJJnF1ZXJ5X3B0ci0+cmVnaW9uc1swXTsKKwlzdHJ1Y3QgZHJtX2k5MTVfbWVtb3J5X3JlZ2lv bl9pbmZvIGluZm8gPSB7IH07CisJc3RydWN0IGRybV9pOTE1X3F1ZXJ5X21lbW9yeV9yZWdpb25z IHF1ZXJ5OworCXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptcjsKKwl1MzIgdG90YWxfbGVu Z3RoOworCWludCByZXQsIGlkOworCisJaWYgKHF1ZXJ5X2l0ZW0tPmZsYWdzICE9IDApCisJCXJl dHVybiAtRUlOVkFMOworCisJdG90YWxfbGVuZ3RoID0gc2l6ZW9mKHF1ZXJ5KTsKKwlmb3JfZWFj aF9tZW1vcnlfcmVnaW9uKG1yLCBpOTE1LCBpZCkgeworCQlpZiAobXItPnByaXZhdGUpCisJCQlj b250aW51ZTsKKworCQl0b3RhbF9sZW5ndGggKz0gc2l6ZW9mKGluZm8pOworCX0KKworCXJldCA9 IGNvcHlfcXVlcnlfaXRlbSgmcXVlcnksIHNpemVvZihxdWVyeSksIHRvdGFsX2xlbmd0aCwgcXVl cnlfaXRlbSk7CisJaWYgKHJldCAhPSAwKQorCQlyZXR1cm4gcmV0OworCisJaWYgKHF1ZXJ5Lm51 bV9yZWdpb25zKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChxdWVyeS5wYWQpCisJCXJldHVy biAgLUVJTlZBTDsKKworCWZvcl9lYWNoX21lbW9yeV9yZWdpb24obXIsIGk5MTUsIGlkKSB7CisJ CWlmIChtci0+cHJpdmF0ZSkKKwkJCWNvbnRpbnVlOworCisJCWluZm8ucmVnaW9uLm1lbW9yeV9j bGFzcyA9IG1yLT50eXBlOworCQlpbmZvLnJlZ2lvbi5tZW1vcnlfaW5zdGFuY2UgPSBtci0+aW5z dGFuY2U7CisJCWluZm8ucHJvYmVkX3NpemUgPSBtci0+dG90YWw7CisJCWluZm8udW5hbGxvY2F0 ZWRfc2l6ZSA9IG1yLT5hdmFpbDsKKworCQlpZiAoX19jb3B5X3RvX3VzZXIoaW5mb19wdHIsICZp bmZvLCBzaXplb2YoaW5mbykpKQorCQkJcmV0dXJuIC1FRkFVTFQ7CisKKwkJcXVlcnkubnVtX3Jl Z2lvbnMrKzsKKwkJaW5mb19wdHIrKzsKKwl9CisKKwlpZiAoX19jb3B5X3RvX3VzZXIocXVlcnlf cHRyLCAmcXVlcnksIHNpemVvZihxdWVyeSkpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCXJldHVy biB0b3RhbF9sZW5ndGg7Cit9CisKIHN0YXRpYyBpbnQgKCogY29uc3QgaTkxNV9xdWVyeV9mdW5j c1tdKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJCXN0cnVjdCBkcm1f aTkxNV9xdWVyeV9pdGVtICpxdWVyeV9pdGVtKSA9IHsKIAlxdWVyeV90b3BvbG9neV9pbmZvLAog CXF1ZXJ5X2VuZ2luZV9pbmZvLAogCXF1ZXJ5X3BlcmZfY29uZmlnLAorCXF1ZXJ5X21lbXJlZ2lv bl9pbmZvLAogfTsKIAogaW50IGk5MTVfcXVlcnlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlKQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oCmluZGV4IDk0MmZjNGY2ODc2NC4uN2NkOGUzZDY2YTdm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oCkBAIC0xMSw2 ICsxMSw3IEBACiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9pby1t YXBwaW5nLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9tbS5oPgorI2luY2x1ZGUgPGRybS9pOTE1X2Ry bS5oPgogCiAjaW5jbHVkZSAiaTkxNV9idWRkeS5oIgogCkBAIC0xOSwxMiArMjAsOSBAQCBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKIHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uOwogc3Ry dWN0IHNnX3RhYmxlOwogCi0vKioKLSAqICBCYXNlIG1lbW9yeSB0eXBlCi0gKi8KIGVudW0gaW50 ZWxfbWVtb3J5X3R5cGUgewotCUlOVEVMX01FTU9SWV9TWVNURU0gPSAwLAotCUlOVEVMX01FTU9S WV9MT0NBTCwKKwlJTlRFTF9NRU1PUllfU1lTVEVNID0gSTkxNV9NRU1PUllfQ0xBU1NfU1lTVEVN LAorCUlOVEVMX01FTU9SWV9MT0NBTCA9IEk5MTVfTUVNT1JZX0NMQVNTX0RFVklDRSwKIAlJTlRF TF9NRU1PUllfU1RPTEVOX1NZU1RFTSwKIAlJTlRFTF9NRU1PUllfU1RPTEVOX0xPQ0FMLAogfTsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9k cm0vaTkxNV9kcm0uaAppbmRleCA2YTM0MjQzYTc2NDYuLmM1ZTljNjhjMzEwZCAxMDA2NDQKLS0t IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkx NV9kcm0uaApAQCAtMjIzMCw2ICsyMjMwLDcgQEAgc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0g ewogI2RlZmluZSBEUk1fSTkxNV9RVUVSWV9UT1BPTE9HWV9JTkZPICAgIDEKICNkZWZpbmUgRFJN X0k5MTVfUVVFUllfRU5HSU5FX0lORk8JMgogI2RlZmluZSBEUk1fSTkxNV9RVUVSWV9QRVJGX0NP TkZJRyAgICAgIDMKKyNkZWZpbmUgRFJNX0k5MTVfUVVFUllfTUVNT1JZX1JFR0lPTlMgICA0CiAv KiBNdXN0IGJlIGtlcHQgY29tcGFjdCAtLSBubyBob2xlcyBhbmQgd2VsbCBkb2N1bWVudGVkICov CiAKIAkvKioKQEAgLTI0NjQsNiArMjQ2NSwxMTQgQEAgc3RydWN0IGRybV9pOTE1X3F1ZXJ5X3Bl cmZfY29uZmlnIHsKIAlfX3U4IGRhdGFbXTsKIH07CiAKKy8qKgorICogZW51bSBkcm1faTkxNV9n ZW1fbWVtb3J5X2NsYXNzIC0gU3VwcG9ydGVkIG1lbW9yeSBjbGFzc2VzCisgKi8KK2VudW0gZHJt X2k5MTVfZ2VtX21lbW9yeV9jbGFzcyB7CisJLyoqIEBJOTE1X01FTU9SWV9DTEFTU19TWVNURU06 IFN5c3RlbSBtZW1vcnkgKi8KKwlJOTE1X01FTU9SWV9DTEFTU19TWVNURU0gPSAwLAorCS8qKiBA STkxNV9NRU1PUllfQ0xBU1NfREVWSUNFOiBEZXZpY2UgbG9jYWwtbWVtb3J5ICovCisJSTkxNV9N RU1PUllfQ0xBU1NfREVWSUNFLAorfTsKKworLyoqCisgKiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21l bW9yeV9jbGFzc19pbnN0YW5jZSAtIElkZW50aWZ5IHBhcnRpY3VsYXIgbWVtb3J5IHJlZ2lvbgor ICovCitzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZSB7CisJLyoqIEBt ZW1vcnlfY2xhc3M6IFNlZSBlbnVtIGRybV9pOTE1X2dlbV9tZW1vcnlfY2xhc3MgKi8KKwlfX3Ux NiBtZW1vcnlfY2xhc3M7CisKKwkvKiogQG1lbW9yeV9pbnN0YW5jZTogV2hpY2ggaW5zdGFuY2Ug Ki8KKwlfX3UxNiBtZW1vcnlfaW5zdGFuY2U7Cit9OworCisvKioKKyAqIHN0cnVjdCBkcm1faTkx NV9tZW1vcnlfcmVnaW9uX2luZm8gLSBEZXNjcmliZXMgb25lIHJlZ2lvbiBhcyBrbm93biB0byB0 aGUKKyAqIGRyaXZlci4KKyAqCisgKiBOb3RlIHRoYXQgd2UgcmVzZXJ2ZSBzb21lIHN0dWZmIGhl cmUgZm9yIHBvdGVudGlhbCBmdXR1cmUgd29yay4gQXMgYW4gZXhhbXBsZQorICogd2UgbWlnaHQg d2FudCBleHBvc2UgdGhlIGNhcGFiaWxpdGllcyhzZWUgQGNhcHMpIGZvciBhIGdpdmVuIHJlZ2lv biwgd2hpY2gKKyAqIGNvdWxkIGluY2x1ZGUgdGhpbmdzIGxpa2UgaWYgdGhlIHJlZ2lvbiBpcyBD UFUgbWFwcGFibGUvYWNjZXNzaWJsZSwgd2hhdCBhcmUKKyAqIHRoZSBzdXBwb3J0ZWQgbWFwcGlu ZyB0eXBlcyBldGMuCisgKgorICogTm90ZSB0aGlzIGlzIHVzaW5nIGJvdGggc3RydWN0IGRybV9p OTE1X3F1ZXJ5X2l0ZW0gYW5kIHN0cnVjdCBkcm1faTkxNV9xdWVyeS4KKyAqIEZvciB0aGlzIG5l dyBxdWVyeSB3ZSBhcmUgYWRkaW5nIHRoZSBuZXcgcXVlcnkgaWQgRFJNX0k5MTVfUVVFUllfTUVN T1JZX1JFR0lPTlMKKyAqIGF0ICZkcm1faTkxNV9xdWVyeV9pdGVtLnF1ZXJ5X2lkLgorICovCitz dHJ1Y3QgZHJtX2k5MTVfbWVtb3J5X3JlZ2lvbl9pbmZvIHsKKwkvKiogQHJlZ2lvbjogVGhlIGNs YXNzOmluc3RhbmNlIHBhaXIgZW5jb2RpbmcgKi8KKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21lbW9y eV9jbGFzc19pbnN0YW5jZSByZWdpb247CisKKwkvKiogQHBhZDogTUJaICovCisJX191MzIgcGFk OworCisJLyoqIEBjYXBzOiBNQlogKi8KKwlfX3U2NCBjYXBzOworCisJLyoqIEBwcm9iZWRfc2l6 ZTogTWVtb3J5IHByb2JlZCBieSB0aGUgZHJpdmVyICgtMSA9IHVua25vd24pICovCisJX191NjQg cHJvYmVkX3NpemU7CisKKwkvKiogQHVuYWxsb2NhdGVkX3NpemU6IEVzdGltYXRlIG9mIG1lbW9y eSByZW1haW5pbmcgKC0xID0gdW5rbm93bikgKi8KKwlfX3U2NCB1bmFsbG9jYXRlZF9zaXplOwor fTsKKworLyoqCisgKiBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfbWVtb3J5X3JlZ2lvbnMKKyAqCisg KiBUaGUgcmVnaW9uIGluZm8gcXVlcnkgZW51bWVyYXRlcyBhbGwgcmVnaW9ucyBrbm93biB0byB0 aGUgZHJpdmVyIGJ5IGZpbGxpbmcKKyAqIGluIGFuIGFycmF5IG9mIHN0cnVjdCBkcm1faTkxNV9t ZW1vcnlfcmVnaW9uX2luZm8gc3RydWN0dXJlcy4KKyAqCisgKiBFeGFtcGxlIGZvciBnZXR0aW5n IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCByZWdpb25zOgorICoKKyAqIC4uIGNvZGUtYmxvY2s6OiBD CisgKgorICoJc3RydWN0IGRybV9pOTE1X3F1ZXJ5X21lbW9yeV9yZWdpb25zICppbmZvOworICoJ c3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gaXRlbSA9IHsKKyAqCQkucXVlcnlfaWQgPSBEUk1f STkxNV9RVUVSWV9NRU1PUllfUkVHSU9OUzsKKyAqCX07CisgKglzdHJ1Y3QgZHJtX2k5MTVfcXVl cnkgcXVlcnkgPSB7CisgKgkJLm51bV9pdGVtcyA9IDEsCisgKgkJLml0ZW1zX3B0ciA9ICh1aW50 cHRyX3QpJml0ZW0sCisgKgl9OworICoJaW50IGVyciwgaTsKKyAqCisgKgkvLyBGaXJzdCBxdWVy eSB0aGUgc2l6ZSBvZiB0aGUgYmxvYiB3ZSBuZWVkLCB0aGlzIG5lZWRzIHRvIGJlIGxhcmdlCisg KgkvLyBlbm91Z2ggdG8gaG9sZCBvdXIgYXJyYXkgb2YgcmVnaW9ucy4gVGhlIGtlcm5lbCB3aWxs IGZpbGwgb3V0IHRoZQorICoJLy8gaXRlbS5sZW5ndGggZm9yIHVzLCB3aGljaCBpcyB0aGUgbnVt YmVyIG9mIGJ5dGVzIHdlIG5lZWQuCisgKgllcnIgPSBpb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVf UVVFUlksICZxdWVyeSk7CisgKglpZiAoZXJyKSAuLi4KKyAqCisgKglpbmZvID0gY2FsbG9jKDEs IGl0ZW0ubGVuZ3RoKTsKKyAqCS8vIE5vdyB0aGF0IHdlIGFsbG9jYXRlZCB0aGUgcmVxdWlyZWQg bnVtYmVyIG9mIGJ5dGVzLCB3ZSBjYWxsIHRoZSBpb2N0bAorICoJLy8gYWdhaW4sIHRoaXMgdGlt ZSB3aXRoIHRoZSBkYXRhX3B0ciBwb2ludGluZyB0byBvdXIgbmV3bHkgYWxsb2NhdGVkCisgKgkv LyBibG9iLCB3aGljaCB0aGUga2VybmVsIGNhbiB0aGVuIHBvcHVsYXRlIHdpdGggdGhlIGFsbCB0 aGUgcmVnaW9uIGluZm8uCisgKglpdGVtLmRhdGFfcHRyID0gKHVpbnRwdHJfdCkmaW5mbywKKyAq CisgKgllcnIgPSBpb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfUVVFUlksICZxdWVyeSk7CisgKglp ZiAoZXJyKSAuLi4KKyAqCisgKgkvLyBXZSBjYW4gbm93IGFjY2VzcyBlYWNoIHJlZ2lvbiBpbiB0 aGUgYXJyYXkKKyAqCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5udW1fcmVnaW9uczsgaSsrKSB7Cisg KgkJc3RydWN0IGRybV9pOTE1X21lbW9yeV9yZWdpb25faW5mbyBtciA9IGluZm8tPnJlZ2lvbnNb aV07CisgKgkJdTE2IGNsYXNzID0gbXIucmVnaW9uLmNsYXNzOworICoJCXUxNiBpbnN0YW5jZSA9 IG1yLnJlZ2lvbi5pbnN0YW5jZTsKKyAqCisgKgkJLi4uLgorICoJfQorICoKKyAqCWZyZWUoaW5m byk7CisgKi8KK3N0cnVjdCBkcm1faTkxNV9xdWVyeV9tZW1vcnlfcmVnaW9ucyB7CisJLyoqIEBu dW1fcmVnaW9uczogTnVtYmVyIG9mIHN1cHBvcnRlZCByZWdpb25zICovCisJX191MzIgbnVtX3Jl Z2lvbnM7CisKKwkvKiogQHBhZDogTUJaICovCisJX191MzIgcGFkOworCisJLyoqIEByZWdpb25z OiBJbmZvIGFib3V0IGVhY2ggc3VwcG9ydGVkIHJlZ2lvbiAqLworCXN0cnVjdCBkcm1faTkxNV9t ZW1vcnlfcmVnaW9uX2luZm8gcmVnaW9uc1tdOworfTsKKwogI2lmIGRlZmluZWQoX19jcGx1c3Bs dXMpCiB9CiAjZW5kaWYKLS0gCjIuMjYuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==