From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM04-SN1-obe.outbound.protection.outlook.com (mail-eopbgr700043.outbound.protection.outlook.com [40.107.70.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id D84D16E0AB for ; Tue, 25 Jun 2019 19:45:58 +0000 (UTC) From: Dingchen Zhang Date: Tue, 25 Jun 2019 15:42:16 -0400 Message-ID: <20190625194218.18106-1-dingchen.zhang@amd.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2 1/3] lib/igt_fb: add functionality of getting framebuffer 16-bit CRC. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: TmVlZCBmcmFtZWJ1ZmZlciBDUkMgdG8gdmFsaWRhdGUgQU1ER1BVIGJ5cGFzcyBtb2RlLgoKRm9y IGVhY2ggY29sb3IgY29tcG9uZW50IGxlc3MgdGhhbiAxNi1iaXRzLCBwYWRkaW5nIHplcm8gYml0 cywKbG9vcCB0byB1cGRhdGUgQ1JDIGZvciBlYWNoIFJHQiBjb21wb21lbnQgaW4gdGhlIGZyYW1l YnVmZmVyLgpUaGUgYWxnb3JpdGhtIGlzIGJhc2VkIG9uIERQIHNwZWMgdjEuNC4KCkNjOiBIYXJy eSBXZW50bGFuZCA8SGFycnkuV2VudGxhbmRAYW1kLmNvbT4KQ2M6IE5pY2sgS2F6bGF1c2thcyA8 TmljaG9sYXMuS2F6bGF1c2thc0BhbWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEaW5nY2hlbiBaaGFu ZyA8ZGluZ2NoZW4uemhhbmdAYW1kLmNvbT4KUmV2aWV3ZWQtYnk6IE5pY2hvbGFzIEthemxhdXNr YXMgPG5pY2hvbGFzLmthemxhdXNrYXNAYW1kLmNvbT4KLS0tCiBsaWIvaWd0X2ZiLmMgfCAxOTQg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWIv aWd0X2ZiLmggfCAgIDIgKwogMiBmaWxlcyBjaGFuZ2VkLCAxOTYgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2xpYi9pZ3RfZmIuYyBiL2xpYi9pZ3RfZmIuYwppbmRleCA5ZDRmOTA1ZS4uNDE1 YTNkNjUgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfZmIuYworKysgYi9saWIvaWd0X2ZiLmMKQEAgLTkw Myw2ICs5MDMsMjAwIEBAIGludCBpZ3RfY3JlYXRlX2JvX3dpdGhfZGltZW5zaW9ucyhpbnQgZmQs IGludCB3aWR0aCwgaW50IGhlaWdodCwKIAlyZXR1cm4gZmIuZ2VtX2hhbmRsZTsKIH0KIAorI2Rl ZmluZSBnZXRfdTE2X2JpdCh4LCBuKSAJKCh4ICYgKDEgPDwgbikpID4+IG4gKQorI2RlZmluZSBz ZXRfdTE2X2JpdCh4LCBuLCB2YWwpCSgoeCAmIH4oMSA8PCBuKSkgfCAodmFsIDw8IG4pKQorLyoK KyAqIHVwZGF0ZV9jcmMxNl9kcDoKKyAqIEBjcmNfb2xkOiBvbGQgMTYtYml0IENSQyB2YWx1ZSB0 byBiZSB1cGRhdGVkCisgKiBAZDogaW5wdXQgMTYtYml0IGRhdGEgb24gd2hpY2ggdG8gY2FsY3Vs YXRlIDE2LWJpdCBDUkMKKyAqCisgKiBDUkMgYWxnb3JpdGhtIGltcGxlbWVudGF0aW9uIGRlc2Ny aWJlZCBpbiBEUCAxLjQgc3BlYyBBcHBlbmRpeCBKCisgKiB0aGUgMTYtYml0IENSQyBJQk0gaXMg YXBwbGllZCwgd2l0aCB0aGUgZm9sbG93aW5nIHBvbHlub21pYWw6CisgKgorICogICAgICAgZih4 KSA9IHggXiAxNiArIHggXiAxNSArIHggXiAyICsgMQorICoKKyAqIHRoZSBNU0IgaXMgc2hpZnRl ZCBpbiBmaXJzdCwgZm9yIGFueSBjb2xvciBmb3JtYXQgdGhhdCBpcyBsZXNzIHRoYW4gMTYgYml0 cworICogcGVyIGNvbXBvbmVudCwgdGhlIExTQiBpcyB6ZXJvLXBhZGRlZC4KKyAqCisgKiBUaGUg Zm9sbG93aW5nIGltcGxlbWVudGF0aW9uIGlzIGJhc2VkIG9uIHRoZSBoYXJkd2FyZSBwYXJhbGxl bCAxNi1iaXQgQ1JDCisgKiBnZW5lcmF0aW9uIGFuZCBwb3J0ZWQgdG8gQyBjb2RlLgorICoKKyAq IFJlZmVyZW5jZTogVkVTQSBEaXNwbGF5UG9ydCBTdGFuZGFyZCB2MS40LCBhcHBlbmRpeCBKCisg KgorICogUmV0dXJuczoKKyAqIHVwZGF0ZWQgMTYtYml0IENSQyB2YWx1ZS4KKyAqLworc3RhdGlj IHVpbnQxNl90IHVwZGF0ZV9jcmMxNl9kcCh1aW50MTZfdCBjcmNfb2xkLCB1aW50MTZfdCBkKQor eworCXVpbnQxNl90IGNyY19uZXcgPSAwOwkvKiAxNi1iaXQgQ1JDIG91dHB1dCAqLworCisJLyog aW50ZXJuYWwgdXNlICovCisJdWludDE2X3QgYiA9IGNyY19vbGQ7CisJdWludDhfdCB2YWw7CisK KwkvKiBiWzE1XSAqLworCXZhbCA9IGdldF91MTZfYml0KGIsIDApIF4gZ2V0X3UxNl9iaXQoYiwg MSkgXiBnZXRfdTE2X2JpdChiLCAyKSBeCisJICAgICAgZ2V0X3UxNl9iaXQoYiwgMykgXiBnZXRf dTE2X2JpdChiLCA0KSBeIGdldF91MTZfYml0KGIsIDUpIF4KKwkgICAgICBnZXRfdTE2X2JpdChi LCA2KSBeIGdldF91MTZfYml0KGIsIDcpIF4gZ2V0X3UxNl9iaXQoYiwgOCkgXgorCSAgICAgIGdl dF91MTZfYml0KGIsIDkpIF4gZ2V0X3UxNl9iaXQoYiwgMTApIF4gZ2V0X3UxNl9iaXQoYiwgMTEp IF4KKwkgICAgICBnZXRfdTE2X2JpdChiLCAxMikgXiBnZXRfdTE2X2JpdChiLCAxNCkgXiBnZXRf dTE2X2JpdChiLCAxNSkgXgorCSAgICAgIGdldF91MTZfYml0KGQsIDApIF4gZ2V0X3UxNl9iaXQo ZCwgMSkgXiBnZXRfdTE2X2JpdChkLCAyKSBeCisJICAgICAgZ2V0X3UxNl9iaXQoZCwgMykgXiBn ZXRfdTE2X2JpdChkLCA0KSBeIGdldF91MTZfYml0KGQsIDUpIF4KKwkgICAgICBnZXRfdTE2X2Jp dChkLCA2KSBeIGdldF91MTZfYml0KGQsIDcpIF4gZ2V0X3UxNl9iaXQoZCwgOCkgXgorCSAgICAg IGdldF91MTZfYml0KGQsIDkpIF4gZ2V0X3UxNl9iaXQoZCwgMTApIF4gZ2V0X3UxNl9iaXQoZCwg MTEpIF4KKwkgICAgICBnZXRfdTE2X2JpdChkLCAxMikgXiBnZXRfdTE2X2JpdChkLCAxNCkgXiBn ZXRfdTE2X2JpdChkLCAxNSk7CisJY3JjX25ldyA9IHNldF91MTZfYml0KGNyY19uZXcsIDE1LCB2 YWwpOworCisJLyogYlsxNF0gKi8KKwl2YWwgPSBnZXRfdTE2X2JpdChiLCAxMikgXiBnZXRfdTE2 X2JpdChiLCAxMykgXgorCSAgICAgIGdldF91MTZfYml0KGQsIDEyKSBeIGdldF91MTZfYml0KGQs IDEzKTsKKwljcmNfbmV3ID0gc2V0X3UxNl9iaXQoY3JjX25ldywgMTQsIHZhbCk7CisKKwkvKiBi WzEzXSAqLworCXZhbCA9IGdldF91MTZfYml0KGIsIDExKSBeIGdldF91MTZfYml0KGIsIDEyKSBe CisJICAgICAgZ2V0X3UxNl9iaXQoZCwgMTEpIF4gZ2V0X3UxNl9iaXQoZCwgMTIpOworCWNyY19u ZXcgPSBzZXRfdTE2X2JpdChjcmNfbmV3LCAxMywgdmFsKTsKKworCS8qIGJbMTJdICovCisJdmFs ID0gZ2V0X3UxNl9iaXQoYiwgMTApIF4gZ2V0X3UxNl9iaXQoYiwgMTEpIF4KKwkgICAgICBnZXRf dTE2X2JpdChkLCAxMCkgXiBnZXRfdTE2X2JpdChkLCAxMSk7CisJY3JjX25ldyA9IHNldF91MTZf Yml0KGNyY19uZXcsIDEyLCB2YWwpOworCisJLyogYlsxMV0gKi8KKwl2YWwgPSBnZXRfdTE2X2Jp dChiLCA5KSBeIGdldF91MTZfYml0KGIsIDEwKSBeCisJICAgICAgZ2V0X3UxNl9iaXQoZCwgOSkg XiBnZXRfdTE2X2JpdChkLCAxMCk7CisJY3JjX25ldyA9IHNldF91MTZfYml0KGNyY19uZXcsIDEx LCB2YWwpOworCisJLyogYlsxMF0gKi8KKwl2YWwgPSBnZXRfdTE2X2JpdChiLCA4KSBeIGdldF91 MTZfYml0KGIsIDkpIF4KKwkgICAgICBnZXRfdTE2X2JpdChkLCA4KSBeIGdldF91MTZfYml0KGQs IDkpOworCWNyY19uZXcgPSBzZXRfdTE2X2JpdChjcmNfbmV3LCAxMCwgdmFsKTsKKworCS8qIGJb OV0gKi8KKwl2YWwgPSBnZXRfdTE2X2JpdChiLCA3KSBeIGdldF91MTZfYml0KGIsIDgpIF4KKwkg ICAgICBnZXRfdTE2X2JpdChkLCA3KSBeIGdldF91MTZfYml0KGQsIDgpOworCWNyY19uZXcgPSBz ZXRfdTE2X2JpdChjcmNfbmV3LCA5LCB2YWwpOworCisJLyogYls4XSAqLworCXZhbCA9IGdldF91 MTZfYml0KGIsIDYpIF4gZ2V0X3UxNl9iaXQoYiwgNykgXgorCSAgICAgIGdldF91MTZfYml0KGQs IDYpIF4gZ2V0X3UxNl9iaXQoZCwgNyk7CisJY3JjX25ldyA9IHNldF91MTZfYml0KGNyY19uZXcs IDgsIHZhbCk7CisKKwkvKiBiWzddICovCisJdmFsID0gZ2V0X3UxNl9iaXQoYiwgNSkgXiBnZXRf dTE2X2JpdChiLCA2KSBeCisJICAgICAgZ2V0X3UxNl9iaXQoZCwgNSkgXiBnZXRfdTE2X2JpdChk LCA2KTsKKwljcmNfbmV3ID0gc2V0X3UxNl9iaXQoY3JjX25ldywgNywgdmFsKTsKKworCS8qIGJb Nl0gKi8KKwl2YWwgPSBnZXRfdTE2X2JpdChiLCA0KSBeIGdldF91MTZfYml0KGIsIDUpIF4KKwkg ICAgICBnZXRfdTE2X2JpdChkLCA0KSBeIGdldF91MTZfYml0KGQsIDUpOworCWNyY19uZXcgPSBz ZXRfdTE2X2JpdChjcmNfbmV3LCA2LCB2YWwpOworCisJLyogYls1XSAqLworCXZhbCA9IGdldF91 MTZfYml0KGIsIDMpIF4gZ2V0X3UxNl9iaXQoYiwgNCkgXgorCSAgICAgIGdldF91MTZfYml0KGQs IDMpIF4gZ2V0X3UxNl9iaXQoZCwgNCk7CisJY3JjX25ldyA9IHNldF91MTZfYml0KGNyY19uZXcs IDUsIHZhbCk7CisKKwkvKiBiWzRdICovCisJdmFsID0gZ2V0X3UxNl9iaXQoYiwgMikgXiBnZXRf dTE2X2JpdChiLCAzKSBeCisJICAgICAgZ2V0X3UxNl9iaXQoZCwgMikgXiBnZXRfdTE2X2JpdChk LCAzKTsKKwljcmNfbmV3ID0gc2V0X3UxNl9iaXQoY3JjX25ldywgNCwgdmFsKTsKKworCS8qIGJb M10gKi8KKwl2YWwgPSBnZXRfdTE2X2JpdChiLCAxKSBeIGdldF91MTZfYml0KGIsIDIpIF4gZ2V0 X3UxNl9iaXQoYiwgMTUpIF4KKwkgICAgICBnZXRfdTE2X2JpdChkLCAxKSBeIGdldF91MTZfYml0 KGQsIDIpIF4gZ2V0X3UxNl9iaXQoZCwgMTUpOworCWNyY19uZXcgPSBzZXRfdTE2X2JpdChjcmNf bmV3LCAzLCB2YWwpOworCisJLyogYlsyXSAqLworCXZhbCA9IGdldF91MTZfYml0KGIsIDApIF4g Z2V0X3UxNl9iaXQoYiwgMSkgXiBnZXRfdTE2X2JpdChiLCAxNCkgXgorCSAgICAgIGdldF91MTZf Yml0KGQsIDApIF4gZ2V0X3UxNl9iaXQoZCwgMSkgXiBnZXRfdTE2X2JpdChkLCAxNCk7CisJY3Jj X25ldyA9IHNldF91MTZfYml0KGNyY19uZXcsIDIsIHZhbCk7CisKKwkvKiBiWzFdICovCisJdmFs ID0gZ2V0X3UxNl9iaXQoYiwgMSkgXiBnZXRfdTE2X2JpdChiLCAyKSBeIGdldF91MTZfYml0KGIs IDMpIF4KKwkgICAgICBnZXRfdTE2X2JpdChiLCA0KSBeIGdldF91MTZfYml0KGIsIDUpIF4gZ2V0 X3UxNl9iaXQoYiwgNikgXgorCSAgICAgIGdldF91MTZfYml0KGIsIDcpIF4gZ2V0X3UxNl9iaXQo YiwgOCkgXiBnZXRfdTE2X2JpdChiLCA5KSBeCisJICAgICAgZ2V0X3UxNl9iaXQoYiwgMTApIF4g Z2V0X3UxNl9iaXQoYiwgMTEpIF4gZ2V0X3UxNl9iaXQoYiwgMTIpIF4KKwkgICAgICBnZXRfdTE2 X2JpdChiLCAxMykgXiBnZXRfdTE2X2JpdChiLCAxNCkgXgorCSAgICAgIGdldF91MTZfYml0KGQs IDEpIF4gZ2V0X3UxNl9iaXQoZCwgMikgXiBnZXRfdTE2X2JpdChkLCAzKSBeCisJICAgICAgZ2V0 X3UxNl9iaXQoZCwgNCkgXiBnZXRfdTE2X2JpdChkLCA1KSBeIGdldF91MTZfYml0KGQsIDYpIF4K KwkgICAgICBnZXRfdTE2X2JpdChkLCA3KSBeIGdldF91MTZfYml0KGQsIDgpIF4gZ2V0X3UxNl9i aXQoZCwgOSkgXgorCSAgICAgIGdldF91MTZfYml0KGQsIDEwKSBeIGdldF91MTZfYml0KGQsIDEx KSBeIGdldF91MTZfYml0KGQsIDEyKSBeCisJICAgICAgZ2V0X3UxNl9iaXQoZCwgMTMpIF4gZ2V0 X3UxNl9iaXQoZCwgMTQpOworCWNyY19uZXcgPSBzZXRfdTE2X2JpdChjcmNfbmV3LCAxLCB2YWwp OworCisJLyogYlswXSAqLworCXZhbCA9IGdldF91MTZfYml0KGIsIDApIF4gZ2V0X3UxNl9iaXQo YiwgMSkgXiBnZXRfdTE2X2JpdChiLCAyKSBeCisJICAgICAgZ2V0X3UxNl9iaXQoYiwgMykgXiBn ZXRfdTE2X2JpdChiLCA0KSBeIGdldF91MTZfYml0KGIsIDUpIF4KKwkgICAgICBnZXRfdTE2X2Jp dChiLCA2KSBeIGdldF91MTZfYml0KGIsIDcpIF4gZ2V0X3UxNl9iaXQoYiwgOCkgXgorCSAgICAg IGdldF91MTZfYml0KGIsIDkpIF4gZ2V0X3UxNl9iaXQoYiwgMTApIF4gZ2V0X3UxNl9iaXQoYiwg MTEpIF4KKwkgICAgICBnZXRfdTE2X2JpdChiLCAxMikgXiBnZXRfdTE2X2JpdChiLCAxMykgXiBn ZXRfdTE2X2JpdChiLCAxNSkgXgorCSAgICAgIGdldF91MTZfYml0KGQsIDApIF4gZ2V0X3UxNl9i aXQoZCwgMSkgXiBnZXRfdTE2X2JpdChkLCAyKSBeCisJICAgICAgZ2V0X3UxNl9iaXQoZCwgMykg XiBnZXRfdTE2X2JpdChkLCA0KSBeIGdldF91MTZfYml0KGQsIDUpIF4KKwkgICAgICBnZXRfdTE2 X2JpdChkLCA2KSBeIGdldF91MTZfYml0KGQsIDcpIF4gZ2V0X3UxNl9iaXQoZCwgOCkgXgorCSAg ICAgIGdldF91MTZfYml0KGQsIDkpIF4gZ2V0X3UxNl9iaXQoZCwgMTApIF4gZ2V0X3UxNl9iaXQo ZCwgMTEpIF4KKwkgICAgICBnZXRfdTE2X2JpdChkLCAxMikgXiBnZXRfdTE2X2JpdChkLCAxMykg XiBnZXRfdTE2X2JpdChkLCAxNSk7CisJY3JjX25ldyA9IHNldF91MTZfYml0KGNyY19uZXcsIDAs IHZhbCk7CisKKwlyZXR1cm4gY3JjX25ldzsKK30KKworLyoqCisgKiBpZ3RfZmJfY2FsY19jcmM6 CisgKiBAZmI6IHBvaW50ZXIgdG8gYW4gI2lndF9mYiBzdHJ1Y3R1cmUKKyAqIEBjcmM6IHBvaW50 ZXIgdG8gYW4gI2lndF9jcmNfdCBzdHJ1Y3R1cmUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNhbGN1 bGF0ZSB0aGUgMTYtYml0IGZyYW1lIENSQyBvZiBSR0IgY29tcG9uZW50cyBvdmVyIGFsbAorICog dGhlIGFjdGl2ZSBwaXhlbHMuCisgKi8KK3ZvaWQgaWd0X2ZiX2NhbGNfY3JjKHN0cnVjdCBpZ3Rf ZmIgKmZiLCBpZ3RfY3JjX3QgKmNyYykKK3sKKwlpbnQgeCwgeSwgaTsKKwl2b2lkICpwdHI7CisJ dWludDhfdCAqZGF0YTsKKwl1aW50MTZfdCBkaW47CisKKwlpZ3RfYXNzZXJ0KGZiICYmIGNyYyk7 CisKKwlwdHIgPSBpZ3RfZmJfbWFwX2J1ZmZlcihmYi0+ZmQsIGZiKTsKKwlpZ3RfYXNzZXJ0KHB0 cik7CisKKwkvKiBzZXQgZm9yIGxhdGVyIENSQyBjb21wYXJpc29uICovCisJY3JjLT5oYXNfdmFs aWRfZnJhbWUgPSB0cnVlOworCWNyYy0+ZnJhbWUgPSAwOworCWNyYy0+bl93b3JkcyA9IDM7CisJ Y3JjLT5jcmNbMF0gPSAwOwkvKiBSICovCisJY3JjLT5jcmNbMV0gPSAwOwkvKiBHICovCisJY3Jj LT5jcmNbMl0gPSAwOwkvKiBCICovCisKKwlkYXRhID0gcHRyICsgZmItPm9mZnNldHNbMF07CisJ Zm9yICh5ID0gMDsgeSA8IGZiLT5oZWlnaHQ7ICsreSkgeworCQlmb3IgKHggPSAwOyB4IDwgZmIt PndpZHRoOyArK3gpIHsKKwkJCXN3aXRjaCAoZmItPmRybV9mb3JtYXQpIHsKKwkJCWNhc2UgRFJN X0ZPUk1BVF9YUkdCODg4ODoKKwkJCQlpID0geCAqIDQgKyB5ICogZmItPnN0cmlkZXNbMF07CisK KwkJCQlkaW4gPSBkYXRhW2kgKyAyXSA8PCA4OyAvKiBwYWRkaW5nLXplcm9zICovCisJCQkJY3Jj LT5jcmNbMF0gPSB1cGRhdGVfY3JjMTZfZHAoY3JjLT5jcmNbMF0sIGRpbik7CisKKwkJCQkvKiBH cmVlbi1jb21wb25lbnQgKi8KKwkJCQlkaW4gPSBkYXRhW2kgKyAxXSA8PCA4OworCQkJCWNyYy0+ Y3JjWzFdID0gdXBkYXRlX2NyYzE2X2RwKGNyYy0+Y3JjWzFdLCBkaW4pOworCisJCQkJLyogQmx1 ZS1jb21wb25lbnQgKi8KKwkJCQlkaW4gPSBkYXRhW2ldIDw8IDg7CisJCQkJY3JjLT5jcmNbMl0g PSB1cGRhdGVfY3JjMTZfZHAoY3JjLT5jcmNbMl0sIGRpbik7CisJCQkJYnJlYWs7CisJCQlkZWZh dWx0OgorCQkJCWlndF9hc3NlcnRfZigwLCAiRFJNIEZvcm1hdCBJbnZhbGlkIik7CisJCQkJYnJl YWs7CisJCQl9CisJCX0KKwl9CisKKwlpZ3RfZmJfdW5tYXBfYnVmZmVyKGZiLCBwdHIpOworfQor CiAvKioKICAqIGlndF9wYWludF9jb2xvcjoKICAqIEBjcjogY2Fpcm8gZHJhd2luZyBjb250ZXh0 CmRpZmYgLS1naXQgYS9saWIvaWd0X2ZiLmggYi9saWIvaWd0X2ZiLmgKaW5kZXggYWRlZmViZTEu LmJlNzg2OTExIDEwMDY0NAotLS0gYS9saWIvaWd0X2ZiLmgKKysrIGIvbGliL2lndF9mYi5oCkBA IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8aTkxNV9kcm0uaD4KIAogI2luY2x1ZGUgImlndF9j b2xvcl9lbmNvZGluZy5oIgorI2luY2x1ZGUgImlndF9kZWJ1Z2ZzLmgiCiAKIC8qCiAgKiBJbnRl cm5hbCBmb3JtYXQgdG8gZGVub3RlIGEgYnVmZmVyIGNvbXBhdGlibGUgd2l0aCBwaXhtYW4ncwpA QCAtMTU4LDYgKzE1OSw3IEBAIGludCBpZ3RfY3JlYXRlX2JvX3dpdGhfZGltZW5zaW9ucyhpbnQg ZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgdWludDMyX3QgZm9ybWF0CiAJCQkJICB1aW50NjRf dCBtb2RpZmllciwgdW5zaWduZWQgc3RyaWRlLAogCQkJCSAgdWludDY0X3QgKnNpemVfcmV0LCB1 bnNpZ25lZCAqc3RyaWRlX3JldCwKIAkJCQkgIGJvb2wgKmlzX2R1bWIpOwordm9pZCBpZ3RfZmJf Y2FsY19jcmMoc3RydWN0IGlndF9mYiAqZmIsIGlndF9jcmNfdCAqY3JjKTsKIAogdWludDY0X3Qg aWd0X2ZiX21vZF90b190aWxpbmcodWludDY0X3QgbW9kaWZpZXIpOwogdWludDY0X3QgaWd0X2Zi X3RpbGluZ190b19tb2QodWludDY0X3QgdGlsaW5nKTsKLS0gCjIuMTcuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QK aWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2