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: Thu, 4 Feb 2016 15:00:06 +0530 Message-ID: <1454578211-24823-6-git-send-email-ankitprasad.r.sharma@intel.com> References: <1454578211-24823-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id BD9D86E844 for ; Thu, 4 Feb 2016 01:53:13 -0800 (PST) In-Reply-To: <1454578211-24823-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 , 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 bS9pOTE1L2k5MTVfZG1hLmMKaW5kZXggYTQyZWI1OC4uMWFhMmNiNiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RtYS5jCkBAIC0xNzIsNiArMTcyLDkgQEAgc3RhdGljIGludCBpOTE1X2dldHBhcmFtKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJY2FzZSBJOTE1X1BBUkFNX0hBU19F WEVDX1NPRlRQSU46CiAJCXZhbHVlID0gMTsKIAkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0NS RUFURV9WRVJTSU9OOgorCQl2YWx1ZSA9IDI7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCURSTV9E RUJVRygiVW5rbm93biBwYXJhbWV0ZXIgJWRcbiIsIHBhcmFtLT5wYXJhbSk7CiAJCXJldHVybiAt RUlOVkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMTEyMmUxYi4uNTVmMmRlOSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0zMzAxLDcgKzMzMDEsNyBAQCB2b2lkIGk5MTVfZ2Vt X3N0b2xlbl9yZW1vdmVfbm9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiBp bnQgaTkxNV9nZW1faW5pdF9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGk5 MTVfZ2VtX2NsZWFudXBfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKgotaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdTMyIHNpemUpOworaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9s ZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTY0IHNpemUpOwogc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKgogaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRl ZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkgICAgICAgdTMyIHN0b2xlbl9vZmZzZXQs CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCAxYWE0ZmM5Li42MGQyN2ZlIDEwMDY0NAotLS0g 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 X3N0b2xlbi5jCmluZGV4IGMzODRkYzkuLjgyMDMxNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3N0b2xlbi5jCkBAIC01ODYsNyArNTg2LDcgQEAgY2xlYW51cDoKIH0KIAogc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKgotaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHNpemUpCitpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0 b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1NjQgc2l6ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmo7CkBAIC01OTYsNyArNTk2LDcgQEAgaTkxNV9nZW1fb2JqZWN0X2Ny ZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHNpemUpCiAJaWYgKCFkcm1f bW1faW5pdGlhbGl6ZWQoJmRldl9wcml2LT5tbS5zdG9sZW4pKQogCQlyZXR1cm4gTlVMTDsKIAot CURSTV9ERUJVR19LTVMoImNyZWF0aW5nIHN0b2xlbiBvYmplY3Q6IHNpemU9JXhcbiIsIHNpemUp OworCURSTV9ERUJVR19LTVMoImNyZWF0aW5nIHN0b2xlbiBvYmplY3Q6IHNpemU9JWxseFxuIiwg c2l6ZSk7CiAJaWYgKHNpemUgPT0gMCkKIAkJcmV0dXJuIE5VTEw7CiAKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApp bmRleCBhNTUyNGNjLi5kYWUwMmQ4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVf ZHJtLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCkBAIC0zNTcsNiArMzU3LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgZHJtX2k5MTVfaXJxX3dhaXQgewogI2RlZmluZSBJOTE1X1BBUkFN X0hBU19HUFVfUkVTRVQJIDM1CiAjZGVmaW5lIEk5MTVfUEFSQU1fSEFTX1JFU09VUkNFX1NUUkVB TUVSIDM2CiAjZGVmaW5lIEk5MTVfUEFSQU1fSEFTX0VYRUNfU09GVFBJTgkgMzcKKyNkZWZpbmUg STkxNV9QQVJBTV9DUkVBVEVfVkVSU0lPTgkgMzgKIAogdHlwZWRlZiBzdHJ1Y3QgZHJtX2k5MTVf Z2V0cGFyYW0gewogCV9fczMyIHBhcmFtOwpAQCAtNDU2LDYgKzQ1Nyw0NiBAQCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2NyZWF0ZSB7CiAJICovCiAJX191MzIgaGFuZGxlOwogCV9fdTMyIHBhZDsKKwkv KioKKwkgKiBSZXF1ZXN0ZWQgZmxhZ3MgKGN1cnJlbnRseSB1c2VkIGZvciBwbGFjZW1lbnQKKwkg KiAod2hpY2ggbWVtb3J5IGRvbWFpbikpCisJICoKKwkgKiBZb3UgY2FuIHJlcXVlc3QgdGhhdCB0 aGUgb2JqZWN0IGJlIGNyZWF0ZWQgZnJvbSBzcGVjaWFsIG1lbW9yeQorCSAqIHJhdGhlciB0aGFu IHJlZ3VsYXIgc3lzdGVtIHBhZ2VzIHVzaW5nIHRoaXMgcGFyYW1ldGVyLiBTdWNoCisJICogaXJy ZWd1bGFyIG9iamVjdHMgbWF5IGhhdmUgY2VydGFpbiByZXN0cmljdGlvbnMgKHN1Y2ggYXMgQ1BV CisJICogYWNjZXNzIHRvIGEgc3RvbGVuIG9iamVjdCBpcyB2ZXJib3RlbikuCisJICoKKwkgKiBU aGlzIGNhbiBiZSB1c2VkIGluIHRoZSBmdXR1cmUgZm9yIG90aGVyIHB1cnBvc2VzIHRvbworCSAq IGUuZy4gc3BlY2lmeWluZyB0aWxpbmcvY2FjaGluZy9tYWR2aXNlCisJICovCisJX191NjQgZmxh Z3M7CisjZGVmaW5lIEk5MTVfQ1JFQVRFX1BMQUNFTUVOVF9OT1JNQUwgCTAgLyogc3RhbmRhcmQg c3dhcHBhYmxlIGJvICAqLworLyogQWxsb2NhdGUgdGhlIG9iamVjdCBmcm9tIG1lbW9yeSByZXNl cnZlZCBmb3IgdGhlIGlnZnggKHN0b2xlbikuCisgKgorICogT2JqZWN0cyBhbGxvY2F0ZWQgZnJv bSBzdG9sZW4gYXJlIHJlc3RyaWN0ZWQgaW4gdGhlIEFQSSB0aGV5IGNhbiB1c2UsCisgKiBhcyBk aXJlY3QgQ1BVIGFjY2VzcyB0byBzdG9sZW4gbWVtb3J5IGlzIHByb2hpYml0ZWQgYnkgdGhlIHN5 c3RlbS4KKyAqIFRoaXMgbWVhbnMgdGhhdCB5b3UgY2Fubm90IHVzZSBhIHJlZ3VsYXIgQ1BVIG1t YXAgKGVpdGhlciB1c2luZyBXQgorICogb3Igd2l0aCB0aGUgV0MgZXh0ZW5zaW9uKS4gWW91IGNh biBzdGlsbCB1c2UgYSBHVFQgbW1hcCwgcHdyaXRlLAorICogcHJlYWQgYW5kIHBhc3MgaXQgYXJv dW5kIGZvciB1c2UgYnkgZXhlY2J1ZmZlciBhbmQgYmV0d2VlbiBwcm9jZXNzZXMKKyAqIGxpa2Ug bm9ybWFsLgorICoKKyAqIFN0b2xlbiBtZW1vcnkgaXMgYSB2ZXJ5IGxpbWl0ZWQgcmVzb3VyY2Ug YW5kIGNlcnRhaW4gZnVuY3Rpb25zIG9mIHRoZQorICogaGFyZHdhcmUgY2FuIG9ubHkgd29yayBm cm9tIHdpdGhpbiBzdG9sZW4gbWVtb3J5LiBVc2Vyc3BhY2UncworICogYWxsb2NhdGlvbnMgbWF5 IGJlIGV2aWN0ZWQgZnJvbSBzdG9sZW4gYW5kIG1vdmVkIHRvIG5vcm1hbCBtZW1vcnkgYXMKKyAq IHJlcXVpcmVkLiBJZiB0aGUgYWxsb2NhdGlvbiBpcyBtYXJrZWQgYXMgcHVyZ2VhYmxlICh1c2lu ZyBtYWR2aXNlKSwKKyAqIHRoZSBhbGxvY2F0aW9uIHdpbGwgYmUgZHJvcHBlZCBhbmQgZnVydGhl ciBhY2Nlc3MgdG8gdGhlIG9iamVjdCdzCisgKiBiYWNraW5nIHN0b3JhZ2Ugd2lsbCByZXN1bHQg aW4gLUVGQVVMVC4gU3RvbGVuIG9iamVjdHMgd2lsbCBhbHNvIGJlCisgKiBtaWdyYXRlZCB0byBu b3JtYWwgbWVtb3J5IGFjcm9zcyBzdXNwZW5kIGFuZCByZXN1bWUsIGFzIHRoZSBzdG9sZW4KKyAq IG1lbW9yeSBpcyBub3QgcHJlc2VydmVkLgorICoKKyAqIFN0b2xlbiBtZW1vcnkgaXMgcmVnYXJk ZWQgYXMgYSByZXNvdXJjZSBwbGFjZW1lbnQgaGludCwgbW9zdCBzdWl0YWJsZQorICogZm9yIG1l ZGl1bS1zaXplZCBidWZmZXJzIHRoYXQgYXJlIG9ubHkgYWNjZXNzZWQgYnkgdGhlIEdQVSBhbmQg Y2FuIGJlCisgKiBkaXNjYXJkZWQuCisgKi8KKyNkZWZpbmUgSTkxNV9DUkVBVEVfUExBQ0VNRU5U X1NUT0xFTiAJMSAvKiBDYW5ub3QgdXNlIENQVSBtbWFwcyAqLworCisjZGVmaW5lIEk5MTVfQ1JF QVRFX1BMQUNFTUVOVF9NQVNLCTB4ZmYKKyNkZWZpbmUgX19JOTE1X0NSRUFURV9VTktOT1dOX0ZM QUdTCX5JOTE1X0NSRUFURV9QTEFDRU1FTlRfTUFTSwogfTsKIAogc3RydWN0IGRybV9pOTE1X2dl bV9wcmVhZCB7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK