From mboxrd@z Thu Jan 1 00:00:00 1970 From: ankitprasad.r.sharma@intel.com Subject: [PATCH 05/11] drm/i915: Support for creating Stolen memory backed objects Date: Wed, 8 Jun 2016 17:50:35 +0530 Message-ID: <1465388441-23085-6-git-send-email-ankitprasad.r.sharma@intel.com> References: <1465388441-23085-1-git-send-email-ankitprasad.r.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 263C46E449 for ; Wed, 8 Jun 2016 12:46:41 +0000 (UTC) In-Reply-To: <1465388441-23085-1-git-send-email-ankitprasad.r.sharma@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 Cc: akash.goel@intel.com, Ankitprasad Sharma List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQW5raXRwcmFzYWQgU2hhcm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20+ CgpFeHRlbmQgdGhlIGRybV9pOTE1X2dlbV9jcmVhdGUgc3RydWN0dXJlIHRvIGFkZCBzdXBwb3J0 IGZvcgpjcmVhdGluZyBTdG9sZW4gbWVtb3J5IGJhY2tlZCBvYmplY3RzLiBBZGRlZCBhIG5ldyBm bGFnIHRocm91Z2gKd2hpY2ggdXNlciBjYW4gc3BlY2lmeSB0aGUgcHJlZmVyZW5jZSB0byBhbGxv Y2F0ZSB0aGUgb2JqZWN0IGZyb20Kc3RvbGVuIG1lbW9yeSwgd2hpY2ggaWYgc2V0LCBhbiBhdHRl bXB0IHdpbGwgYmUgbWFkZSB0byBhbGxvY2F0ZQp0aGUgb2JqZWN0IGZyb20gc3RvbGVuIG1lbW9y eSBzdWJqZWN0IHRvIHRoZSBhdmFpbGFiaWxpdHkgb2YKZnJlZSBzcGFjZSBpbiB0aGUgc3RvbGVu IHJlZ2lvbi4KCnYyOiBSZWJhc2VkIHRvIHRoZSBsYXRlc3QgZHJtLWludGVsLW5pZ2h0bHkgKEFu a2l0KQoKdjM6IENoYW5nZWQgdmVyc2lvbmluZyBvZiBHRU1fQ1JFQVRFIHBhcmFtLCBhZGRlZCBu ZXcgY29tbWVudHMgKFR2cnRrbykKCnY0OiBDaGFuZ2VkIHNpemUgZnJvbSAzMmIgdG8gNjRiIHRv IHByZXZlbnQgdXNlcnNwYWNlIG92ZXJmbG93IChUdnJ0a28pCkNvcnJlY3RlZCBmdW5jdGlvbiBh cmd1bWVudHMgb3JkZXJpbmcgKENocmlzKQoKdjU6IENvcnJlY3RlZCBmdW5jdGlvbiBuYW1lIChD aHJpcykKCnY2OiBVcGRhdGVkIGRhdGF0eXBlIGZvciBmbGFncyB0byBrZWVwIHNpemVvZihkcm1f aTkxNV9nZW1fY3JlYXRlKSB1NjQKYWxpZ25lZCAoQ2hyaXMpCgp2NzogVXNlIGZpcnN0IDggYml0 cyBvZiBnZW1fY3JlYXRlIGZsYWdzIGZvciBwbGFjZW1lbnQgKENocmlzKSwgQWRkIGhlbHBlcgpm dW5jdGlvbiBmb3Igb2JqZWN0IGFsbG9jYXRpb24gZnJvbSBzdG9sZW4gcmVnaW9uIChBbmtpdCkK CnY4OiBBZGRlZCBjb21tZW50IGV4cGxhaW5pbmcgU1RPTEVOIHBsYWNlbWVudCBmbGFnIChDaHJp cykKClRlc3RjYXNlOiBpZ3QvZ2VtX3N0b2xlbgoKU2lnbmVkLW9mZi1ieTogQW5raXRwcmFzYWQg U2hhcm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBDaHJp cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RtYS5jICAgICAgICB8ICAzICsrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAg ICAgICAgfCA0OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyB8ICA0ICstLQogaW5jbHVkZS91YXBpL2RybS9p OTE1X2RybS5oICAgICAgICAgICAgfCA0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA1 IGZpbGVzIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZG1hLmMKaW5kZXggMDdlZGFlZC4uODNhZTQzNiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RtYS5jCkBAIC0yMzEsNiArMjMxLDkgQEAgc3RhdGljIGludCBpOTE1X2dldHBhcmFtKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVD X1NPRlRQSU46CiAJCXZhbHVlID0gMTsKIAkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0NSRUFU RV9WRVJTSU9OOgorCQl2YWx1ZSA9IDI7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCURSTV9ERUJV RygiVW5rbm93biBwYXJhbWV0ZXIgJWRcbiIsIHBhcmFtLT5wYXJhbSk7CiAJCXJldHVybiAtRUlO VkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggOTZlZWEzZC4uYzkyY2I2MCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0zNTIzLDcgKzM1MjMsNyBAQCB2b2lkIGk5MTVfZ2VtX3N0 b2xlbl9yZW1vdmVfbm9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiBpbnQg aTkxNV9nZW1faW5pdF9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGk5MTVf Z2VtX2NsZWFudXBfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKgotaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdTMyIHNpemUpOworaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4o c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTY0IHNpemUpOwogc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKgogaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkgICAgICAgdTMyIHN0b2xlbl9vZmZzZXQsCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCBkNjU4ZDQ2Li4yOGM3ZTI4IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMKQEAgLTM4NCwxMCArMzg0LDM2IEBAIHZvaWQgaTkxNV9nZW1fb2JqZWN0X2Zy ZWUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlrbWVtX2NhY2hlX2ZyZWUoZGV2 X3ByaXYtPm9iamVjdHMsIG9iaik7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqCitpOTE1X2dlbV9hbGxvY19vYmplY3Rfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHNpemVfdCBzaXplKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJ aW50IHJldDsKKworCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwlvYmogPSBpOTE1 X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHNpemUpOworCWlmICghb2JqKSB7CisJCW11 dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwkv KiBBbHdheXMgY2xlYXIgZnJlc2ggYnVmZmVycyBiZWZvcmUgaGFuZGluZyB0byB1c2Vyc3BhY2Ug Ki8KKwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfY2xlYXIob2JqKTsKKwlpZiAocmV0KSB7CisJCWRy bV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOworCQltdXRleF91bmxvY2soJmRl di0+c3RydWN0X211dGV4KTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJbXV0ZXhfdW5sb2NrKCZk ZXYtPnN0cnVjdF9tdXRleCk7CisJcmV0dXJuIG9iajsKK30KKwogc3RhdGljIGludAogaTkxNV9n ZW1fY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAkJc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAkJdWludDY0X3Qgc2l6ZSwKKwkJdWludDY0X3QgZmxhZ3MsCiAJCXVpbnQzMl90ICpoYW5k bGVfcCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwpAQCAtMzk4LDEwICs0 MjQsMjMgQEAgaTkxNV9nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAlpZiAoc2l6 ZSA9PSAwKQogCQlyZXR1cm4gLUVJTlZBTDsKIAorCWlmIChmbGFncyAmIF9fSTkxNV9DUkVBVEVf VU5LTk9XTl9GTEFHUykKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAkvKiBBbGxvY2F0ZSB0aGUgbmV3 IG9iamVjdCAqLwotCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGUoZGV2LCBzaXplKTsKLQlp ZiAoSVNfRVJSKG9iaikpCi0JCXJldHVybiBQVFJfRVJSKG9iaik7CisJc3dpdGNoIChmbGFncyAm IEk5MTVfQ1JFQVRFX1BMQUNFTUVOVF9NQVNLKSB7CisJY2FzZSBJOTE1X0NSRUFURV9QTEFDRU1F TlRfTk9STUFMOgorCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlKGRldiwgc2l6ZSk7CisJ CWJyZWFrOworCWNhc2UgSTkxNV9DUkVBVEVfUExBQ0VNRU5UX1NUT0xFTjoKKwkJb2JqID0gaTkx NV9nZW1fYWxsb2Nfb2JqZWN0X3N0b2xlbihkZXYsIHNpemUpOworCQlicmVhazsKKwlkZWZhdWx0 OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoSVNfRVJSX09SX05VTEwob2JqKSkKKwkJ cmV0dXJuIC1FTk9NRU07CiAKIAlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZSwgJm9i ai0+YmFzZSwgJmhhbmRsZSk7CiAJLyogZHJvcCByZWZlcmVuY2UgZnJvbSBhbGxvY2F0ZSAtIGhh bmRsZSBob2xkcyBpdCBub3cgKi8KQEAgLTQyMiw3ICs0NjEsNyBAQCBpOTE1X2dlbV9kdW1iX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiAJYXJncy0+cGl0Y2ggPSBBTElHTihhcmdzLT53 aWR0aCAqIERJVl9ST1VORF9VUChhcmdzLT5icHAsIDgpLCA2NCk7CiAJYXJncy0+c2l6ZSA9IGFy Z3MtPnBpdGNoICogYXJncy0+aGVpZ2h0OwogCXJldHVybiBpOTE1X2dlbV9jcmVhdGUoZmlsZSwg ZGV2LAotCQkJICAgICAgIGFyZ3MtPnNpemUsICZhcmdzLT5oYW5kbGUpOworCQkJICAgICAgIGFy Z3MtPnNpemUsIDAsICZhcmdzLT5oYW5kbGUpOwogfQogCiAvKioKQEAgLTQzOCw3ICs0NzcsNyBA QCBpOTE1X2dlbV9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NyZWF0ZSAqYXJncyA9IGRhdGE7CiAKIAlyZXR1cm4g aTkxNV9nZW1fY3JlYXRlKGZpbGUsIGRldiwKLQkJCSAgICAgICBhcmdzLT5zaXplLCAmYXJncy0+ aGFuZGxlKTsKKwkJCSAgICAgICBhcmdzLT5zaXplLCBhcmdzLT5mbGFncywgJmFyZ3MtPmhhbmRs ZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9zdG9sZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0 b2xlbi5jCmluZGV4IGY5MjUzZjIuLjgxZDViNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3N0b2xlbi5jCkBAIC01OTcsNyArNTk3LDcgQEAgY2xlYW51cDoKIH0KIAogc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKgotaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdTMyIHNpemUpCitpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xl bihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1NjQgc2l6ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmo7CkBAIC02MDcsNyArNjA3LDcgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0 ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHNpemUpCiAJaWYgKCFkcm1fbW1f aW5pdGlhbGl6ZWQoJmRldl9wcml2LT5tbS5zdG9sZW4pKQogCQlyZXR1cm4gTlVMTDsKIAotCURS TV9ERUJVR19LTVMoImNyZWF0aW5nIHN0b2xlbiBvYmplY3Q6IHNpemU9JXhcbiIsIHNpemUpOwor CURSTV9ERUJVR19LTVMoImNyZWF0aW5nIHN0b2xlbiBvYmplY3Q6IHNpemU9JWxseFxuIiwgc2l6 ZSk7CiAJaWYgKHNpemUgPT0gMCkKIAkJcmV0dXJuIE5VTEw7CiAKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAppbmRl eCBjMTdkNjNkLi5jZWZmNGMxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJt LmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCkBAIC0zNjEsNiArMzYxLDcgQEAg dHlwZWRlZiBzdHJ1Y3QgZHJtX2k5MTVfaXJxX3dhaXQgewogI2RlZmluZSBJOTE1X1BBUkFNX0hB U19HUFVfUkVTRVQJIDM1CiAjZGVmaW5lIEk5MTVfUEFSQU1fSEFTX1JFU09VUkNFX1NUUkVBTUVS IDM2CiAjZGVmaW5lIEk5MTVfUEFSQU1fSEFTX0VYRUNfU09GVFBJTgkgMzcKKyNkZWZpbmUgSTkx NV9QQVJBTV9DUkVBVEVfVkVSU0lPTgkgMzgKIAogdHlwZWRlZiBzdHJ1Y3QgZHJtX2k5MTVfZ2V0 cGFyYW0gewogCV9fczMyIHBhcmFtOwpAQCAtNDYwLDYgKzQ2MSw0NiBAQCBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX2NyZWF0ZSB7CiAJICovCiAJX191MzIgaGFuZGxlOwogCV9fdTMyIHBhZDsKKwkvKioK KwkgKiBSZXF1ZXN0ZWQgZmxhZ3MgKGN1cnJlbnRseSB1c2VkIGZvciBwbGFjZW1lbnQKKwkgKiAo d2hpY2ggbWVtb3J5IGRvbWFpbikpCisJICoKKwkgKiBZb3UgY2FuIHJlcXVlc3QgdGhhdCB0aGUg b2JqZWN0IGJlIGNyZWF0ZWQgZnJvbSBzcGVjaWFsIG1lbW9yeQorCSAqIHJhdGhlciB0aGFuIHJl Z3VsYXIgc3lzdGVtIHBhZ2VzIHVzaW5nIHRoaXMgcGFyYW1ldGVyLiBTdWNoCisJICogaXJyZWd1 bGFyIG9iamVjdHMgbWF5IGhhdmUgY2VydGFpbiByZXN0cmljdGlvbnMgKHN1Y2ggYXMgQ1BVCisJ ICogYWNjZXNzIHRvIGEgc3RvbGVuIG9iamVjdCBpcyB2ZXJib3RlbikuCisJICoKKwkgKiBUaGlz IGNhbiBiZSB1c2VkIGluIHRoZSBmdXR1cmUgZm9yIG90aGVyIHB1cnBvc2VzIHRvbworCSAqIGUu Zy4gc3BlY2lmeWluZyB0aWxpbmcvY2FjaGluZy9tYWR2aXNlCisJICovCisJX191NjQgZmxhZ3M7 CisjZGVmaW5lIEk5MTVfQ1JFQVRFX1BMQUNFTUVOVF9OT1JNQUwgCTAgLyogc3RhbmRhcmQgc3dh cHBhYmxlIGJvICAqLworLyogQWxsb2NhdGUgdGhlIG9iamVjdCBmcm9tIG1lbW9yeSByZXNlcnZl ZCBmb3IgdGhlIGlnZnggKHN0b2xlbikuCisgKgorICogT2JqZWN0cyBhbGxvY2F0ZWQgZnJvbSBz dG9sZW4gYXJlIHJlc3RyaWN0ZWQgaW4gdGhlIEFQSSB0aGV5IGNhbiB1c2UsCisgKiBhcyBkaXJl Y3QgQ1BVIGFjY2VzcyB0byBzdG9sZW4gbWVtb3J5IGlzIHByb2hpYml0ZWQgYnkgdGhlIHN5c3Rl bS4KKyAqIFRoaXMgbWVhbnMgdGhhdCB5b3UgY2Fubm90IHVzZSBhIHJlZ3VsYXIgQ1BVIG1tYXAg KGVpdGhlciB1c2luZyBXQgorICogb3Igd2l0aCB0aGUgV0MgZXh0ZW5zaW9uKS4gWW91IGNhbiBz dGlsbCB1c2UgYSBHVFQgbW1hcCwgcHdyaXRlLAorICogcHJlYWQgYW5kIHBhc3MgaXQgYXJvdW5k IGZvciB1c2UgYnkgZXhlY2J1ZmZlciBhbmQgYmV0d2VlbiBwcm9jZXNzZXMKKyAqIGxpa2Ugbm9y bWFsLgorICoKKyAqIFN0b2xlbiBtZW1vcnkgaXMgYSB2ZXJ5IGxpbWl0ZWQgcmVzb3VyY2UgYW5k IGNlcnRhaW4gZnVuY3Rpb25zIG9mIHRoZQorICogaGFyZHdhcmUgY2FuIG9ubHkgd29yayBmcm9t IHdpdGhpbiBzdG9sZW4gbWVtb3J5LiBVc2Vyc3BhY2UncworICogYWxsb2NhdGlvbnMgbWF5IGJl IGV2aWN0ZWQgZnJvbSBzdG9sZW4gYW5kIG1vdmVkIHRvIG5vcm1hbCBtZW1vcnkgYXMKKyAqIHJl cXVpcmVkLiBJZiB0aGUgYWxsb2NhdGlvbiBpcyBtYXJrZWQgYXMgcHVyZ2VhYmxlICh1c2luZyBt YWR2aXNlKSwKKyAqIHRoZSBhbGxvY2F0aW9uIHdpbGwgYmUgZHJvcHBlZCBhbmQgZnVydGhlciBh Y2Nlc3MgdG8gdGhlIG9iamVjdCdzCisgKiBiYWNraW5nIHN0b3JhZ2Ugd2lsbCByZXN1bHQgaW4g LUVGQVVMVC4gU3RvbGVuIG9iamVjdHMgd2lsbCBhbHNvIGJlCisgKiBtaWdyYXRlZCB0byBub3Jt YWwgbWVtb3J5IGFjcm9zcyBzdXNwZW5kIGFuZCByZXN1bWUsIGFzIHRoZSBzdG9sZW4KKyAqIG1l bW9yeSBpcyBub3QgcHJlc2VydmVkLgorICoKKyAqIFN0b2xlbiBtZW1vcnkgaXMgcmVnYXJkZWQg YXMgYSByZXNvdXJjZSBwbGFjZW1lbnQgaGludCwgbW9zdCBzdWl0YWJsZQorICogZm9yIG1lZGl1 bS1zaXplZCBidWZmZXJzIHRoYXQgYXJlIG9ubHkgYWNjZXNzZWQgYnkgdGhlIEdQVSBhbmQgY2Fu IGJlCisgKiBkaXNjYXJkZWQuCisgKi8KKyNkZWZpbmUgSTkxNV9DUkVBVEVfUExBQ0VNRU5UX1NU T0xFTiAJMSAvKiBDYW5ub3QgdXNlIENQVSBtbWFwcyAqLworCisjZGVmaW5lIEk5MTVfQ1JFQVRF X1BMQUNFTUVOVF9NQVNLCTB4ZmYKKyNkZWZpbmUgX19JOTE1X0NSRUFURV9VTktOT1dOX0ZMQUdT CX5JOTE1X0NSRUFURV9QTEFDRU1FTlRfTUFTSwogfTsKIAogc3RydWN0IGRybV9pOTE1X2dlbV9w cmVhZCB7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==