From mboxrd@z Thu Jan 1 00:00:00 1970 From: yu.dai@intel.com Subject: [PATCH] drm/i915: Add GuC css header parser Date: Wed, 2 Sep 2015 15:52:35 -0700 Message-ID: <1441234355-7524-1-git-send-email-yu.dai@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id BC19D6E8F2 for ; Wed, 2 Sep 2015 15:54:06 -0700 (PDT) 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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+CgpCeSB1c2luZyBpbmZvcm1hdGlvbiBm cm9tIEd1QyBjc3MgaGVhZGVyLCB3ZSBjYW4gZWxpbWluYXRlIHNvbWUKaGFyZCBjb2RlIHcuci50 IHNpemUgb2Ygc29tZSBjb21wb25lbnRzIG9mIGZpcm13YXJlLgoKU2lnbmVkLW9mZi1ieTogQWxl eCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjLmggICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lm LmggICB8IDM2ICsrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19s b2FkZXIuYyB8IDkxICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMyBmaWxlcyBj aGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d1Yy5oCmluZGV4IDRlYzJkMjcuLmUxMzg5ZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2d1Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Yy5oCkBAIC03MSw2ICs3MSw3IEBAIHN0cnVjdCBpbnRlbF9ndWNfZncgewogCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICoJZ3VjX2Z3X29iajsKIAllbnVtIGludGVsX2d1Y19md19zdGF0dXMJ Z3VjX2Z3X2ZldGNoX3N0YXR1czsKIAllbnVtIGludGVsX2d1Y19md19zdGF0dXMJZ3VjX2Z3X2xv YWRfc3RhdHVzOworCXN0cnVjdCBndWNfY3NzX2hlYWRlcgkJZ3VjX2Z3X2hlYWRlcjsKIAogCXVp bnQxNl90CQkJZ3VjX2Z3X21ham9yX3dhbnRlZDsKIAl1aW50MTZfdAkJCWd1Y19md19taW5vcl93 YW50ZWQ7CkBAIC04MCw3ICs4MSw2IEBAIHN0cnVjdCBpbnRlbF9ndWNfZncgewogCiBzdHJ1Y3Qg aW50ZWxfZ3VjIHsKIAlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3IGd1Y19mdzsKLQogCXVpbnQzMl90IGxv Z19mbGFnczsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqbG9nX29iajsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Z3aWYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmgKaW5kZXggZTFmNDdiYS4uZDZjYjRlOCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Z3aWYuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oCkBAIC0xMjIsNiArMTIyLDQyIEBACiAKICNk ZWZpbmUgR1VDX0NUTF9NQVhfRFdPUkRTCQkoR1VDX0NUTF9SU1JWRCArIDEpCiAKK3N0cnVjdCBn dWNfY3NzX2hlYWRlciB7CisJdWludDMyX3QgbW9kdWxlX3R5cGU7CisJdWludDMyX3QgaGVhZGVy X2xlbjsgLyogaGVhZGVyIGxlbmd0aCBwbHVzIHNpemUgb2YgYWxsIG90aGVyIGtleXMgKi8KKwl1 aW50MzJfdCBoZWFkZXJfdmVyc2lvbjsKKwl1aW50MzJfdCBtb2R1bGVfaWQ7CisJdWludDMyX3Qg bW9kdWxlX3ZlbmRvcjsKKwl1bmlvbiB7CisJCXN0cnVjdCB7CisJCQl1aW50OF90IGRheTsKKwkJ CXVpbnQ4X3QgbW9udGg7CisJCQl1aW50MTZfdCB5ZWFyOworCQl9OworCQl1aW50MzJfdCBkYXRl OworCX07CisJdWludDMyX3Qgc2l6ZTsgLyogdUNvZGUgc2l6ZSBwbHVzIGhlYWRlcl9sZW4gKi8K Kwl1aW50MzJfdCBrZXlfc2l6ZTsKKwl1aW50MzJfdCBtb2R1bHVzX3NpemU7CisJdWludDMyX3Qg ZXhwb25lbnRfc2l6ZTsKKwl1bmlvbiB7CisJCXN0cnVjdCB7CisJCQl1aW50OF90IGhvdXI7CisJ CQl1aW50OF90IG1pbjsKKwkJCXVpbnQxNl90IHNlYzsKKwkJfTsKKwkJdWludDMyX3QgdGltZTsK Kwl9OworCisJY2hhciB1c2VybmFtZVs4XTsKKwljaGFyIGJ1aWxkbnVtYmVyWzEyXTsKKwl1aW50 MzJfdCBkZXZpY2VfaWQ7CisJdWludDMyX3QgZ3VjX3N3X3ZlcnNpb247CisJdWludDMyX3QgcHJv ZF9wcmVwcm9kX2Z3OworCXVpbnQzMl90IHJlc2VydmVkWzEyXTsKKwl1aW50MzJfdCBoZWFkZXJf aW5mbzsKK307CisKIHN0cnVjdCBndWNfZG9vcmJlbGxfaW5mbyB7CiAJdTMyIGRiX3N0YXR1czsK IAl1MzIgY29va2llOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj X2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCmluZGV4 IDU4MjM2MTUuLjk2ODI2YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2d1Y19sb2FkZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVy LmMKQEAgLTIxNSwxOCArMjE1LDI0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBndWNfdWNvZGVfcmVz cG9uc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkoKHZhbCAmIEdTX01J QV9DT1JFX1NUQVRFKSAmJiB1a192YWwgPT0gR1NfVUtFUk5FTF9MQVBJQ19ET05FKSk7CiB9CiAK LS8qCisvKioKICAqIFRyYW5zZmVyIHRoZSBmaXJtd2FyZSBpbWFnZSB0byBSQU0gZm9yIGV4ZWN1 dGlvbiBieSB0aGUgbWljcm9jb250cm9sbGVyLgogICoKICAqIEd1QyBGaXJtd2FyZSBsYXlvdXQ6 Ci0gKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgIC0tLS0KLSAqIHwgICAgICAg ICAgQ1NTIGhlYWRlciAgICAgICAgICAgfCAgMTI4QgorICogKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICBndWNfY3NzX2hlYWRlciAgICAgICAgIHwKICAqIHwg Y29udGFpbnMgbWFqb3IvbWlub3IgdmVyc2lvbiAgfAotICogKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rICAtLS0tCisgKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK ICAqIHwgICAgICAgICAgICAgdUNvZGUgICAgICAgICAgICAgfAotICogKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rICAtLS0tCi0gKiB8ICAgICAgICAgUlNBIHNpZ25hdHVyZSAgICAg ICAgIHwgIDI1NkIKLSAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgLS0tLQor ICogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgUlNBIHNp Z25hdHVyZSAgICAgICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwor ICogfCAgICAgICAgICBtb2R1bHVzIGtleSAgICAgICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgZXhwb25lbnQgdmFsICAgICAgICAgfAor ICogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiBUaGUgZmlybXdhcmUgbWF5 IG9yIG1heSBub3QgaGF2ZSBtb2R1bHVzIGtleSBhbmQgZXhwb25lbnQgZGF0YS4gVGhlIGhlYWRl ciwKKyAqIHVDb2RlIGFuZCBSU0Egc2lnbmF0dXJlIGFyZSBtdXN0LWhhdmUgY29tcG9uZW50cyB0 aGF0IHdpbGwgYmUgdXNlZCBieSBkcml2ZXIuCiAgKgogICogQXJjaGl0ZWN0dXJhbGx5LCB0aGUg RE1BIGVuZ2luZSBpcyBiaWRpcmVjdGlvbmFsLCBhbmQgY2FuIHBvdGVudGlhbGx5IGV2ZW4KICAq IHRyYW5zZmVyIGJldHdlZW4gR1RUIGxvY2F0aW9ucy4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGxl ZnQgb3V0IG9mIHRoZSBBUEkKQEAgLTIzNiwzMCArMjQyLDM5IEBAIHN0YXRpYyBpbmxpbmUgYm9v bCBndWNfdWNvZGVfcmVzcG9uc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog ICogRE1BIGVuZ2luZSBpbiBvbmUgb3BlcmF0aW9uLCB3aGVyZWFzIHRoZSBSU0Egc2lnbmF0dXJl IGlzIGxvYWRlZCB2aWEgTU1JTy4KICAqLwogCi0jZGVmaW5lIFVPU19DU1NfSEVBREVSX09GRlNF VAkJMAotI2RlZmluZSBVT1NfVkVSX01JTk9SX09GRlNFVAkJMHg0NAotI2RlZmluZSBVT1NfVkVS X01BSk9SX09GRlNFVAkJMHg0NgotI2RlZmluZSBVT1NfQ1NTX0hFQURFUl9TSVpFCQkweDgwCi0j ZGVmaW5lIFVPU19SU0FfU0lHX1NJWkUJCTB4MTAwCi0KIHN0YXRpYyBpbnQgZ3VjX3Vjb2RlX3hm ZXJfZG1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50 ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7CisJc3RydWN0IGd1Y19j c3NfaGVhZGVyICpoZWFkZXIgPSAmZ3VjX2Z3LT5ndWNfZndfaGVhZGVyOwogCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpmd19vYmogPSBndWNfZnctPmd1Y19md19vYmo7CiAJdW5zaWduZWQg bG9uZyBvZmZzZXQ7CiAJc3RydWN0IHNnX3RhYmxlICpzZyA9IGZ3X29iai0+cGFnZXM7Ci0JdTMy IHN0YXR1cywgdWNvZGVfc2l6ZSwgcnNhW1VPU19SU0FfU0lHX1NJWkUgLyBzaXplb2YodTMyKV07 CisJdTMyIHN0YXR1cywgaGVhZGVyX3NpemUsIHJzYV9zaXplLCB1Y29kZV9zaXplLCAqcnNhOwog CWludCBpLCByZXQgPSAwOwogCi0JLyogdUNvZGUgc2l6ZSwgYWxzbyBpcyB3aGVyZSBSU0Egc2ln bmF0dXJlIHN0YXJ0cyAqLwotCW9mZnNldCA9IHVjb2RlX3NpemUgPSBndWNfZnctPmd1Y19md19z aXplIC0gVU9TX1JTQV9TSUdfU0laRTsKLQlJOTE1X1dSSVRFKERNQV9DT1BZX1NJWkUsIHVjb2Rl X3NpemUpOworCS8qIFRoZSBoZWFkZXIgcGx1cyB1Q29kZSB3aWxsIGJlIGNvcGllZCB0byBXT1BD TSB2aWEgRE1BLCBleGNsdWRpbmcgYW55CisJICogb3RoZXIgY29tcG9uZW50cyAqLworCWhlYWRl cl9zaXplID0gKGhlYWRlci0+aGVhZGVyX2xlbiAtIGhlYWRlci0+a2V5X3NpemUgLQorCQloZWFk ZXItPm1vZHVsdXNfc2l6ZSAtIGhlYWRlci0+ZXhwb25lbnRfc2l6ZSkgKiBzaXplb2YodTMyKTsK Kwl1Y29kZV9zaXplID0gKGhlYWRlci0+c2l6ZSAtIGhlYWRlci0+aGVhZGVyX2xlbikgKiBzaXpl b2YodTMyKTsKKworCUk5MTVfV1JJVEUoRE1BX0NPUFlfU0laRSwgaGVhZGVyX3NpemUgKyB1Y29k ZV9zaXplKTsKKworCS8qIHdoZXJlIFJTQSBzaWduYXR1cmUgc3RhcnRzICovCisJb2Zmc2V0ID0g aGVhZGVyX3NpemUgKyB1Y29kZV9zaXplOworCisJcnNhX3NpemUgPSBoZWFkZXItPmtleV9zaXpl ICogc2l6ZW9mKHUzMik7CisJcnNhID0ga21hbGxvYyhyc2Ffc2l6ZSwgR0ZQX0tFUk5FTCk7CisJ aWYgKCFyc2EpCisJCXJldHVybiAtRU5PTUVNOwogCiAJLyogQ29weSBSU0Egc2lnbmF0dXJlIGZy b20gdGhlIGZ3IGltYWdlIHRvIEhXIGZvciB2ZXJpZmljYXRpb24gKi8KLQlzZ19wY29weV90b19i dWZmZXIoc2ctPnNnbCwgc2ctPm5lbnRzLCByc2EsIFVPU19SU0FfU0lHX1NJWkUsIG9mZnNldCk7 Ci0JZm9yIChpID0gMDsgaSA8IFVPU19SU0FfU0lHX1NJWkUgLyBzaXplb2YodTMyKTsgaSsrKQor CXNnX3Bjb3B5X3RvX2J1ZmZlcihzZy0+c2dsLCBzZy0+bmVudHMsIHJzYSwgcnNhX3NpemUsIG9m ZnNldCk7CisJZm9yIChpID0gMDsgaSA8IHJzYV9zaXplIC8gc2l6ZW9mKHUzMik7IGkrKykKIAkJ STkxNV9XUklURShVT1NfUlNBX1NDUkFUQ0hfMCArIGkgKiBzaXplb2YodTMyKSwgcnNhW2ldKTsK IAorCWtmcmVlKHJzYSk7CisKIAkvKiBTZXQgdGhlIHNvdXJjZSBhZGRyZXNzIGZvciB0aGUgbmV3 IGJsb2IgKi8KIAlvZmZzZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoZndfb2JqKTsKIAlJ OTE1X1dSSVRFKERNQV9BRERSXzBfTE9XLCBsb3dlcl8zMl9iaXRzKG9mZnNldCkpOwpAQCAtNDU4 LDEwICs0NzMsOCBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQogewogCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmo7CiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKLQljb25zdCB1OCAq Y3NzX2hlYWRlcjsKLQljb25zdCBzaXplX3QgbWluc2l6ZSA9IFVPU19DU1NfSEVBREVSX1NJWkUg KyBVT1NfUlNBX1NJR19TSVpFOwotCWNvbnN0IHNpemVfdCBtYXhzaXplID0gR1VDX1dPUENNX1NJ WkVfVkFMVUUgKyBVT1NfUlNBX1NJR19TSVpFCi0JCQktIDB4ODAwMDsgLyogMzJrIHJlc2VydmVk ICg4SyBzdGFjayArIDI0ayBjb250ZXh0KSAqLworCXN0cnVjdCBndWNfY3NzX2hlYWRlciAqY3Nz X2hlYWRlciA9ICZndWNfZnctPmd1Y19md19oZWFkZXI7CisJc2l6ZV90IHNpemU7CiAJaW50IGVy cjsKIAogCURSTV9ERUJVR19EUklWRVIoImJlZm9yZSByZXF1ZXN0aW5nIGZpcm13YXJlOiBHdUMg ZncgZmV0Y2ggc3RhdHVzICVzXG4iLApAQCAtNDc1LDEyICs0ODgsMzEgQEAgc3RhdGljIHZvaWQg Z3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNfZncg Kmd1Y19mdykKIAogCURSTV9ERUJVR19EUklWRVIoImZldGNoIEd1QyBmdyBmcm9tICVzIHN1Y2Nl ZWRlZCwgZncgJXBcbiIsCiAJCWd1Y19mdy0+Z3VjX2Z3X3BhdGgsIGZ3KTsKLQlEUk1fREVCVUdf RFJJVkVSKCJmaXJtd2FyZSBmaWxlIHNpemUgJXp1IChtaW5pbXVtICV6dSwgbWF4aW11bSAlenUp XG4iLAotCQlmdy0+c2l6ZSwgbWluc2l6ZSwgbWF4c2l6ZSk7CiAKLQkvKiBDaGVjayB0aGUgc2l6 ZSBvZiB0aGUgYmxvYiBiZWZvZSBleGFtaW5pbmcgYnVmZmVyIGNvbnRlbnRzICovCi0JaWYgKGZ3 LT5zaXplIDwgbWluc2l6ZSB8fCBmdy0+c2l6ZSA+IG1heHNpemUpCisJLyogQ2hlY2sgdGhlIHNp emUgb2YgdGhlIGJsb2IgYmVmb3JlIGV4YW1pbmluZyBidWZmZXIgY29udGVudHMgKi8KKwlpZiAo ZnctPnNpemUgPCBzaXplb2Yoc3RydWN0IGd1Y19jc3NfaGVhZGVyKSkgeworCQlEUk1fRVJST1Io IkZpcm13YXJlIGhlYWRlciBpcyBtaXNzaW5nXG4iKTsKKwkJZ290byBmYWlsOworCX0KKworCW1l bWNweShjc3NfaGVhZGVyLCBmdy0+ZGF0YSwgc2l6ZW9mKHN0cnVjdCBndWNfY3NzX2hlYWRlcikp OworCisJLyogQXQgbGVhc3QsIGl0IHNob3VsZCBoYXZlIGhlYWRlciwgdUNvZGUgYW5kIFJTQS4g U2l6ZSBvZiBhbGwgdGhyZWUuICovCisJc2l6ZSA9IChjc3NfaGVhZGVyLT5zaXplIC0gY3NzX2hl YWRlci0+bW9kdWx1c19zaXplIC0KKwkJCWNzc19oZWFkZXItPmV4cG9uZW50X3NpemUpICogc2l6 ZW9mKHUzMik7CisJaWYgKGZ3LT5zaXplIDwgc2l6ZSkgeworCQlEUk1fRVJST1IoIk1pc3Npbmcg ZmlybXdhcmUgY29tcG9uZW50c1xuIik7CisJCWdvdG8gZmFpbDsKKwl9CisKKwkvKiBIZWFkZXIg YW5kIHVDb2RlIHdpbGwgYmUgbG9hZGVkIHRvIFdPUENNLiBTaXplIG9mIHRoZSB0d28uICovCisJ c2l6ZSAtPSBjc3NfaGVhZGVyLT5rZXlfc2l6ZSAqIHNpemVvZih1MzIpOworCisJLyogVG9wIDMy ayBvZiBXT1BDTSBpcyByZXNlcnZlZCAoOEsgc3RhY2sgKyAyNGsgUkM2IGNvbnRleHQpLiAqLwor CWlmIChzaXplID4gR1VDX1dPUENNX1NJWkVfVkFMVUUgLSAweDgwMDApIHsKKwkJRFJNX0VSUk9S KCJGaXJtd2FyZSBpcyB0b28gbGFyZ2UgdG8gZml0IGluIFdPUENNXG4iKTsKIAkJZ290byBmYWls OworCX0KIAogCS8qCiAJICogVGhlIEd1QyBmaXJtd2FyZSBpbWFnZSBoYXMgdGhlIHZlcnNpb24g bnVtYmVyIGVtYmVkZGVkIGF0IGEgd2VsbC1rbm93bgpAQCAtNDg4LDkgKzUyMCw4IEBAIHN0YXRp YyB2b2lkIGd1Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxf Z3VjX2Z3ICpndWNfZncpCiAJICogVFdPIGJ5dGVzIGVhY2ggKGkuZS4gdTE2KSwgYWx0aG91Z2gg YWxsIHBvaW50ZXJzIGFuZCBvZmZzZXRzIGFyZSBkZWZpbmVkCiAJICogaW4gdGVybXMgb2YgYnl0 ZXMgKHU4KS4KIAkgKi8KLQljc3NfaGVhZGVyID0gZnctPmRhdGEgKyBVT1NfQ1NTX0hFQURFUl9P RkZTRVQ7Ci0JZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91bmQgPSAqKHUxNiAqKShjc3NfaGVhZGVy ICsgVU9TX1ZFUl9NQUpPUl9PRkZTRVQpOwotCWd1Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kID0g Kih1MTYgKikoY3NzX2hlYWRlciArIFVPU19WRVJfTUlOT1JfT0ZGU0VUKTsKKwlndWNfZnctPmd1 Y19md19tYWpvcl9mb3VuZCA9IGNzc19oZWFkZXItPmd1Y19zd192ZXJzaW9uID4+IDE2OworCWd1 Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kID0gY3NzX2hlYWRlci0+Z3VjX3N3X3ZlcnNpb24gJiAw eEZGRkY7CiAKIAlpZiAoZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91bmQgIT0gZ3VjX2Z3LT5ndWNf ZndfbWFqb3Jfd2FudGVkIHx8CiAJICAgIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kIDwgZ3Vj X2Z3LT5ndWNfZndfbWlub3Jfd2FudGVkKSB7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK