From mboxrd@z Thu Jan 1 00:00:00 1970 From: ankitprasad.r.sharma@intel.com Subject: [PATCH 05/10] drm/i915: Support for creating Stolen memory backed objects Date: Mon, 29 Feb 2016 13:09:34 +0530 Message-ID: <1456731579-25584-6-git-send-email-ankitprasad.r.sharma@intel.com> References: <1456731579-25584-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 3F024880C4 for ; Mon, 29 Feb 2016 08:03:28 +0000 (UTC) In-Reply-To: <1456731579-25584-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: Ankitprasad Sharma , akash.goel@intel.com, shashidhar.hiremath@intel.com 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 ICAgICAgfCA0NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyB8ICA0ICstLQogaW5jbHVkZS91YXBpL2RybS9p OTE1X2RybS5oICAgICAgICAgICAgfCA0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiA1IGZpbGVzIGNoYW5nZWQsIDg5IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZG1hLmMKaW5kZXggMWM2ZDIyNy4uMzMyY2M3OCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RtYS5jCkBAIC0xNzIsNiArMTcyLDkgQEAgc3RhdGljIGludCBpOTE1X2dldHBhcmFtKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJY2FzZSBJOTE1X1BBUkFNX0hBU19F WEVDX1NPRlRQSU46CiAJCXZhbHVlID0gMTsKIAkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0NS RUFURV9WRVJTSU9OOgorCQl2YWx1ZSA9IDI7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCURSTV9E RUJVRygiVW5rbm93biBwYXJhbWV0ZXIgJWRcbiIsIHBhcmFtLT5wYXJhbSk7CiAJCXJldHVybiAt RUlOVkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggZGQwM2RkNi4uNTM2ZDQ4YSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0zMjk5LDcgKzMyOTksNyBAQCB2b2lkIGk5MTVfZ2Vt X3N0b2xlbl9yZW1vdmVfbm9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiBp bnQgaTkxNV9nZW1faW5pdF9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGk5 MTVfZ2VtX2NsZWFudXBfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKgotaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdTMyIHNpemUpOworaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9s ZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTY0IHNpemUpOwogc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKgogaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRl ZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkgICAgICAgdTMyIHN0b2xlbl9vZmZzZXQs CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCBmNDFkYWVmLi44NTEyYmQ2IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKQEAgLTM4OSwxMCArMzg5LDM2IEBAIHZvaWQgaTkxNV9nZW1fb2JqZWN0 X2ZyZWUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlrbWVtX2NhY2hlX2ZyZWUo ZGV2X3ByaXYtPm9iamVjdHMsIG9iaik7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqCitpOTE1X2dlbV9hbGxvY19vYmplY3Rfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHNpemVfdCBzaXplKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7 CisJaW50IHJldDsKKworCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwlvYmogPSBp OTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHNpemUpOworCWlmICghb2JqKSB7CisJ CW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCQlyZXR1cm4gTlVMTDsKKwl9CisK KwkvKiBBbHdheXMgY2xlYXIgZnJlc2ggYnVmZmVycyBiZWZvcmUgaGFuZGluZyB0byB1c2Vyc3Bh Y2UgKi8KKwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfY2xlYXIob2JqKTsKKwlpZiAocmV0KSB7CisJ CWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOworCQltdXRleF91bmxvY2so JmRldi0+c3RydWN0X211dGV4KTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJbXV0ZXhfdW5sb2Nr KCZkZXYtPnN0cnVjdF9tdXRleCk7CisJcmV0dXJuIG9iajsKK30KKwogc3RhdGljIGludAogaTkx NV9nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAkJc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAkJdWludDY0X3Qgc2l6ZSwKKwkJdWludDY0X3QgZmxhZ3MsCiAJCXVpbnQzMl90ICpo YW5kbGVfcCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwpAQCAtNDAzLDgg KzQyOSwyMSBAQCBpOTE1X2dlbV9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAogCWlmIChz aXplID09IDApCiAJCXJldHVybiAtRUlOVkFMOwogCisJaWYgKGZsYWdzICYgX19JOTE1X0NSRUFU RV9VTktOT1dOX0ZMQUdTKQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCS8qIEFsbG9jYXRlIHRoZSBu ZXcgb2JqZWN0ICovCi0Jb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgc2l6ZSk7CisJ c3dpdGNoIChmbGFncyAmIEk5MTVfQ1JFQVRFX1BMQUNFTUVOVF9NQVNLKSB7CisJY2FzZSBJOTE1 X0NSRUFURV9QTEFDRU1FTlRfTk9STUFMOgorCQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3Qo ZGV2LCBzaXplKTsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X0NSRUFURV9QTEFDRU1FTlRfU1RPTEVO OgorCQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3Rfc3RvbGVuKGRldiwgc2l6ZSk7CisJCWJy ZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKwogCWlmIChvYmogPT0gTlVM TCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKQEAgLTQyNyw3ICs0NjYsNyBAQCBpOTE1X2dlbV9kdW1i X2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiAJYXJncy0+cGl0Y2ggPSBBTElHTihhcmdz LT53aWR0aCAqIERJVl9ST1VORF9VUChhcmdzLT5icHAsIDgpLCA2NCk7CiAJYXJncy0+c2l6ZSA9 IGFyZ3MtPnBpdGNoICogYXJncy0+aGVpZ2h0OwogCXJldHVybiBpOTE1X2dlbV9jcmVhdGUoZmls ZSwgZGV2LAotCQkJICAgICAgIGFyZ3MtPnNpemUsICZhcmdzLT5oYW5kbGUpOworCQkJICAgICAg IGFyZ3MtPnNpemUsIDAsICZhcmdzLT5oYW5kbGUpOwogfQogCiAvKioKQEAgLTQ0MCw3ICs0Nzks NyBAQCBpOTE1X2dlbV9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAq ZGF0YSwKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NyZWF0ZSAqYXJncyA9IGRhdGE7CiAKIAlyZXR1 cm4gaTkxNV9nZW1fY3JlYXRlKGZpbGUsIGRldiwKLQkJCSAgICAgICBhcmdzLT5zaXplLCAmYXJn cy0+aGFuZGxlKTsKKwkJCSAgICAgICBhcmdzLT5zaXplLCBhcmdzLT5mbGFncywgJmFyZ3MtPmhh bmRsZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X3N0b2xlbi5jCmluZGV4IDJlNmU5ZmIuLjIxZTcyNTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9zdG9sZW4uYwpAQCAtNTg5LDcgKzU4OSw3IEBAIGNsZWFudXA6CiB9CiAKIHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKLWk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBzaXplKQoraTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9z dG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTY0IHNpemUpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqOwpAQCAtNTk5LDcgKzU5OSw3IEBAIGk5MTVfZ2VtX29iamVjdF9j cmVhdGVfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBzaXplKQogCWlmICghZHJt X21tX2luaXRpYWxpemVkKCZkZXZfcHJpdi0+bW0uc3RvbGVuKSkKIAkJcmV0dXJuIE5VTEw7CiAK LQlEUk1fREVCVUdfS01TKCJjcmVhdGluZyBzdG9sZW4gb2JqZWN0OiBzaXplPSV4XG4iLCBzaXpl KTsKKwlEUk1fREVCVUdfS01TKCJjcmVhdGluZyBzdG9sZW4gb2JqZWN0OiBzaXplPSVsbHhcbiIs IHNpemUpOwogCWlmIChzaXplID09IDApCiAJCXJldHVybiBOVUxMOwogCmRpZmYgLS1naXQgYS9p bmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgK aW5kZXggYTU1MjRjYy4uZGFlMDJkOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1 X2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApAQCAtMzU3LDYgKzM1Nyw3 IEBAIHR5cGVkZWYgc3RydWN0IGRybV9pOTE1X2lycV93YWl0IHsKICNkZWZpbmUgSTkxNV9QQVJB TV9IQVNfR1BVX1JFU0VUCSAzNQogI2RlZmluZSBJOTE1X1BBUkFNX0hBU19SRVNPVVJDRV9TVFJF QU1FUiAzNgogI2RlZmluZSBJOTE1X1BBUkFNX0hBU19FWEVDX1NPRlRQSU4JIDM3CisjZGVmaW5l IEk5MTVfUEFSQU1fQ1JFQVRFX1ZFUlNJT04JIDM4CiAKIHR5cGVkZWYgc3RydWN0IGRybV9pOTE1 X2dldHBhcmFtIHsKIAlfX3MzMiBwYXJhbTsKQEAgLTQ1Niw2ICs0NTcsNDYgQEAgc3RydWN0IGRy bV9pOTE1X2dlbV9jcmVhdGUgewogCSAqLwogCV9fdTMyIGhhbmRsZTsKIAlfX3UzMiBwYWQ7CisJ LyoqCisJICogUmVxdWVzdGVkIGZsYWdzIChjdXJyZW50bHkgdXNlZCBmb3IgcGxhY2VtZW50CisJ ICogKHdoaWNoIG1lbW9yeSBkb21haW4pKQorCSAqCisJICogWW91IGNhbiByZXF1ZXN0IHRoYXQg dGhlIG9iamVjdCBiZSBjcmVhdGVkIGZyb20gc3BlY2lhbCBtZW1vcnkKKwkgKiByYXRoZXIgdGhh biByZWd1bGFyIHN5c3RlbSBwYWdlcyB1c2luZyB0aGlzIHBhcmFtZXRlci4gU3VjaAorCSAqIGly cmVndWxhciBvYmplY3RzIG1heSBoYXZlIGNlcnRhaW4gcmVzdHJpY3Rpb25zIChzdWNoIGFzIENQ VQorCSAqIGFjY2VzcyB0byBhIHN0b2xlbiBvYmplY3QgaXMgdmVyYm90ZW4pLgorCSAqCisJICog VGhpcyBjYW4gYmUgdXNlZCBpbiB0aGUgZnV0dXJlIGZvciBvdGhlciBwdXJwb3NlcyB0b28KKwkg KiBlLmcuIHNwZWNpZnlpbmcgdGlsaW5nL2NhY2hpbmcvbWFkdmlzZQorCSAqLworCV9fdTY0IGZs YWdzOworI2RlZmluZSBJOTE1X0NSRUFURV9QTEFDRU1FTlRfTk9STUFMIAkwIC8qIHN0YW5kYXJk IHN3YXBwYWJsZSBibyAgKi8KKy8qIEFsbG9jYXRlIHRoZSBvYmplY3QgZnJvbSBtZW1vcnkgcmVz ZXJ2ZWQgZm9yIHRoZSBpZ2Z4IChzdG9sZW4pLgorICoKKyAqIE9iamVjdHMgYWxsb2NhdGVkIGZy b20gc3RvbGVuIGFyZSByZXN0cmljdGVkIGluIHRoZSBBUEkgdGhleSBjYW4gdXNlLAorICogYXMg ZGlyZWN0IENQVSBhY2Nlc3MgdG8gc3RvbGVuIG1lbW9yeSBpcyBwcm9oaWJpdGVkIGJ5IHRoZSBz eXN0ZW0uCisgKiBUaGlzIG1lYW5zIHRoYXQgeW91IGNhbm5vdCB1c2UgYSByZWd1bGFyIENQVSBt bWFwIChlaXRoZXIgdXNpbmcgV0IKKyAqIG9yIHdpdGggdGhlIFdDIGV4dGVuc2lvbikuIFlvdSBj YW4gc3RpbGwgdXNlIGEgR1RUIG1tYXAsIHB3cml0ZSwKKyAqIHByZWFkIGFuZCBwYXNzIGl0IGFy b3VuZCBmb3IgdXNlIGJ5IGV4ZWNidWZmZXIgYW5kIGJldHdlZW4gcHJvY2Vzc2VzCisgKiBsaWtl IG5vcm1hbC4KKyAqCisgKiBTdG9sZW4gbWVtb3J5IGlzIGEgdmVyeSBsaW1pdGVkIHJlc291cmNl IGFuZCBjZXJ0YWluIGZ1bmN0aW9ucyBvZiB0aGUKKyAqIGhhcmR3YXJlIGNhbiBvbmx5IHdvcmsg ZnJvbSB3aXRoaW4gc3RvbGVuIG1lbW9yeS4gVXNlcnNwYWNlJ3MKKyAqIGFsbG9jYXRpb25zIG1h eSBiZSBldmljdGVkIGZyb20gc3RvbGVuIGFuZCBtb3ZlZCB0byBub3JtYWwgbWVtb3J5IGFzCisg KiByZXF1aXJlZC4gSWYgdGhlIGFsbG9jYXRpb24gaXMgbWFya2VkIGFzIHB1cmdlYWJsZSAodXNp bmcgbWFkdmlzZSksCisgKiB0aGUgYWxsb2NhdGlvbiB3aWxsIGJlIGRyb3BwZWQgYW5kIGZ1cnRo ZXIgYWNjZXNzIHRvIHRoZSBvYmplY3QncworICogYmFja2luZyBzdG9yYWdlIHdpbGwgcmVzdWx0 IGluIC1FRkFVTFQuIFN0b2xlbiBvYmplY3RzIHdpbGwgYWxzbyBiZQorICogbWlncmF0ZWQgdG8g bm9ybWFsIG1lbW9yeSBhY3Jvc3Mgc3VzcGVuZCBhbmQgcmVzdW1lLCBhcyB0aGUgc3RvbGVuCisg KiBtZW1vcnkgaXMgbm90IHByZXNlcnZlZC4KKyAqCisgKiBTdG9sZW4gbWVtb3J5IGlzIHJlZ2Fy ZGVkIGFzIGEgcmVzb3VyY2UgcGxhY2VtZW50IGhpbnQsIG1vc3Qgc3VpdGFibGUKKyAqIGZvciBt ZWRpdW0tc2l6ZWQgYnVmZmVycyB0aGF0IGFyZSBvbmx5IGFjY2Vzc2VkIGJ5IHRoZSBHUFUgYW5k IGNhbiBiZQorICogZGlzY2FyZGVkLgorICovCisjZGVmaW5lIEk5MTVfQ1JFQVRFX1BMQUNFTUVO VF9TVE9MRU4gCTEgLyogQ2Fubm90IHVzZSBDUFUgbW1hcHMgKi8KKworI2RlZmluZSBJOTE1X0NS RUFURV9QTEFDRU1FTlRfTUFTSwkweGZmCisjZGVmaW5lIF9fSTkxNV9DUkVBVEVfVU5LTk9XTl9G TEFHUwl+STkxNV9DUkVBVEVfUExBQ0VNRU5UX01BU0sKIH07CiAKIHN0cnVjdCBkcm1faTkxNV9n ZW1fcHJlYWQgewotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=