From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH i-g-t v2 06/14] lib/igt_kms: Export property blob functions for output/pipe/plane, v2. Date: Thu, 12 Oct 2017 13:54:27 +0200 Message-ID: <20171012115435.18880-7-maarten.lankhorst@linux.intel.com> References: <20171012115435.18880-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 642AF6E807 for ; Thu, 12 Oct 2017 11:54:42 +0000 (UTC) In-Reply-To: <20171012115435.18880-1-maarten.lankhorst@linux.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 List-Id: intel-gfx@lists.freedesktop.org V2l0aCB0aGUgcmVwbGFjZV9wcm9wX2Jsb2IgZnVuY3Rpb25zIHdlIGNhbiBzYWZlbHkgcmVwbGFj ZSB0aGUgYmxvYiBmb3IKYW55IHByb3BlcnR5LCB3aXRob3V0IGhhdmluZyB0byBjYXJlIGFib3V0 IGVycm9yIGhhbmRsaW5nIG91cnNlbHZlcy4KClRoaXMgd2lsbCBmb3IgZXhhbXBsZSBhbGxvdyBv dmVycmlkaW5nIGNvbG9yIG1hbmFnZW1lbnQgYmxvYnMsIG9yIGZvcgprbXNfYXRvbWljIHNldCBp bnZhbGlkIG1vZGUgYmxvYnMuCgpUaGUgY29sb3IgbWFuYWdlbWVudCBibG9iIGZ1bmN0aW9ucyBh cmUgcmVtb3ZlZCwgdGhleSBjYW4gbm93IGJlCnJlcGxhY2VkIGJ5IGRpcmVjdCBjYWxscyB0byBy ZXBsYWNlIHRoZSBwcm9wZXJ0aWVzLgoKQ2hhbmdlcyBzaW5jZSB2MToKLSBGaXggY2hhbWVsaXVt IHRlc3RzLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hv cnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBsaWIvaWd0X2ttcy5jICAgICB8IDExNyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIGxpYi9pZ3Rf a21zLmggICAgIHwgIDE5ICsrKysrKystLQogdGVzdHMvY2hhbWVsaXVtLmMgfCAgIDYgKy0tCiB0 ZXN0cy9rbXNfY29sb3IuYyB8ICAxMiArKystLS0KIDQgZmlsZXMgY2hhbmdlZCwgMTEwIGluc2Vy dGlvbnMoKyksIDQ0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmMgYi9s aWIvaWd0X2ttcy5jCmluZGV4IGU3YjlmYmFiYTcwOS4uNWY1NDAyMTM1MGFjIDEwMDY0NAotLS0g YS9saWIvaWd0X2ttcy5jCisrKyBiL2xpYi9pZ3Rfa21zLmMKQEAgLTI0NDMsOCArMjQ0Myw4OCBA QCBzdGF0aWMgaW50IGlndF9vdXRwdXRfY29tbWl0KGlndF9vdXRwdXRfdCAqb3V0cHV0LAogCXJl dHVybiAwOwogfQogCi1zdGF0aWMgdm9pZAotaWd0X3BpcGVfcmVwbGFjZV9ibG9iKGlndF9waXBl X3QgKnBpcGUsIGVudW0gaWd0X2F0b21pY19jcnRjX3Byb3BlcnRpZXMgcHJvcCwgdm9pZCAqcHRy LCBzaXplX3QgbGVuZ3RoKQorLyoqCisgKiBpZ3RfcGxhbmVfcmVwbGFjZV9wcm9wX2Jsb2I6Cisg KiBAcGxhbmU6IHBsYW5lIHRvIHNldCBwcm9wZXJ0eSBvbi4KKyAqIEBwcm9wOiBwcm9wZXJ0eSBm b3Igd2hpY2ggdGhlIGJsb2Igd2lsbCBiZSByZXBsYWNlZC4KKyAqIEBwdHI6IFBvaW50ZXIgdG8g Y29udGVudHMgZm9yIHRoZSBwcm9wZXJ0eS4KKyAqIEBsZW5ndGg6IExlbmd0aCBvZiBjb250ZW50 cy4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVzdHJveSB0aGUgb2xkIHByb3BlcnR5IGJs b2IgZm9yIHRoZSBnaXZlbiBwcm9wZXJ0eSwKKyAqIGFuZCB3aWxsIGNyZWF0ZSBhIG5ldyBwcm9w ZXJ0eSBibG9iIHdpdGggdGhlIHZhbHVlcyBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbi4KKyAqCisg KiBUaGUgbmV3IHByb3BlcnR5IGJsb2Igd2lsbCBiZSBjb21taXR0ZWQgd2hlbiB5b3UgY2FsbCBp Z3RfZGlzcGxheV9jb21taXQoKSwKKyAqIGlndF9kaXNwbGF5X2NvbW1pdDIoKSBvciBpZ3RfZGlz cGxheV9jb21taXRfYXRvbWljKCkuCisgKi8KK3ZvaWQKK2lndF9wbGFuZV9yZXBsYWNlX3Byb3Bf YmxvYihpZ3RfcGxhbmVfdCAqcGxhbmUsIGVudW0gaWd0X2F0b21pY19wbGFuZV9wcm9wZXJ0aWVz IHByb3AsIGNvbnN0IHZvaWQgKnB0ciwgc2l6ZV90IGxlbmd0aCkKK3sKKwlpZ3RfZGlzcGxheV90 ICpkaXNwbGF5ID0gcGxhbmUtPnBpcGUtPmRpc3BsYXk7CisJdWludDY0X3QgKmJsb2IgPSAmcGxh bmUtPnZhbHVlc1twcm9wXTsKKwl1aW50MzJfdCBibG9iX2lkID0gMDsKKworCWlmICgqYmxvYiAh PSAwKQorCQlpZ3RfYXNzZXJ0KGRybU1vZGVEZXN0cm95UHJvcGVydHlCbG9iKGRpc3BsYXktPmRy bV9mZCwKKwkJCQkJCSAgICAgICpibG9iKSA9PSAwKTsKKworCWlmIChsZW5ndGggPiAwKQorCQlp Z3RfYXNzZXJ0KGRybU1vZGVDcmVhdGVQcm9wZXJ0eUJsb2IoZGlzcGxheS0+ZHJtX2ZkLAorCQkJ CQkJICAgICBwdHIsIGxlbmd0aCwgJmJsb2JfaWQpID09IDApOworCisJKmJsb2IgPSBibG9iX2lk OworCWlndF9wbGFuZV9zZXRfcHJvcF9jaGFuZ2VkKHBsYW5lLCBwcm9wKTsKK30KKworLyoqCisg KiBpZ3Rfb3V0cHV0X3JlcGxhY2VfcHJvcF9ibG9iOgorICogQG91dHB1dDogb3V0cHV0IHRvIHNl dCBwcm9wZXJ0eSBvbi4KKyAqIEBwcm9wOiBwcm9wZXJ0eSBmb3Igd2hpY2ggdGhlIGJsb2Igd2ls bCBiZSByZXBsYWNlZC4KKyAqIEBwdHI6IFBvaW50ZXIgdG8gY29udGVudHMgZm9yIHRoZSBwcm9w ZXJ0eS4KKyAqIEBsZW5ndGg6IExlbmd0aCBvZiBjb250ZW50cy4KKyAqCisgKiBUaGlzIGZ1bmN0 aW9uIHdpbGwgZGVzdHJveSB0aGUgb2xkIHByb3BlcnR5IGJsb2IgZm9yIHRoZSBnaXZlbiBwcm9w ZXJ0eSwKKyAqIGFuZCB3aWxsIGNyZWF0ZSBhIG5ldyBwcm9wZXJ0eSBibG9iIHdpdGggdGhlIHZh bHVlcyBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbi4KKyAqCisgKiBUaGUgbmV3IHByb3BlcnR5IGJs b2Igd2lsbCBiZSBjb21taXR0ZWQgd2hlbiB5b3UgY2FsbCBpZ3RfZGlzcGxheV9jb21taXQoKSwK KyAqIGlndF9kaXNwbGF5X2NvbW1pdDIoKSBvciBpZ3RfZGlzcGxheV9jb21taXRfYXRvbWljKCku CisgKi8KK3ZvaWQKK2lndF9vdXRwdXRfcmVwbGFjZV9wcm9wX2Jsb2IoaWd0X291dHB1dF90ICpv dXRwdXQsIGVudW0gaWd0X2F0b21pY19jb25uZWN0b3JfcHJvcGVydGllcyBwcm9wLCBjb25zdCB2 b2lkICpwdHIsIHNpemVfdCBsZW5ndGgpCit7CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9IG91 dHB1dC0+ZGlzcGxheTsKKwl1aW50NjRfdCAqYmxvYiA9ICZvdXRwdXQtPnZhbHVlc1twcm9wXTsK Kwl1aW50MzJfdCBibG9iX2lkID0gMDsKKworCWlmICgqYmxvYiAhPSAwKQorCQlpZ3RfYXNzZXJ0 KGRybU1vZGVEZXN0cm95UHJvcGVydHlCbG9iKGRpc3BsYXktPmRybV9mZCwKKwkJCQkJCSAgICAg ICpibG9iKSA9PSAwKTsKKworCWlmIChsZW5ndGggPiAwKQorCQlpZ3RfYXNzZXJ0KGRybU1vZGVD cmVhdGVQcm9wZXJ0eUJsb2IoZGlzcGxheS0+ZHJtX2ZkLAorCQkJCQkJICAgICBwdHIsIGxlbmd0 aCwgJmJsb2JfaWQpID09IDApOworCisJKmJsb2IgPSBibG9iX2lkOworCWlndF9vdXRwdXRfc2V0 X3Byb3BfY2hhbmdlZChvdXRwdXQsIHByb3ApOworfQorCisvKioKKyAqIGlndF9waXBlX29ial9y ZXBsYWNlX3Byb3BfYmxvYjoKKyAqIEBwaXBlOiBwaXBlIHRvIHNldCBwcm9wZXJ0eSBvbi4KKyAq IEBwcm9wOiBwcm9wZXJ0eSBmb3Igd2hpY2ggdGhlIGJsb2Igd2lsbCBiZSByZXBsYWNlZC4KKyAq IEBwdHI6IFBvaW50ZXIgdG8gY29udGVudHMgZm9yIHRoZSBwcm9wZXJ0eS4KKyAqIEBsZW5ndGg6 IExlbmd0aCBvZiBjb250ZW50cy4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVzdHJveSB0 aGUgb2xkIHByb3BlcnR5IGJsb2IgZm9yIHRoZSBnaXZlbiBwcm9wZXJ0eSwKKyAqIGFuZCB3aWxs IGNyZWF0ZSBhIG5ldyBwcm9wZXJ0eSBibG9iIHdpdGggdGhlIHZhbHVlcyBwYXNzZWQgdG8gdGhp cyBmdW5jdGlvbi4KKyAqCisgKiBUaGUgbmV3IHByb3BlcnR5IGJsb2Igd2lsbCBiZSBjb21taXR0 ZWQgd2hlbiB5b3UgY2FsbCBpZ3RfZGlzcGxheV9jb21taXQoKSwKKyAqIGlndF9kaXNwbGF5X2Nv bW1pdDIoKSBvciBpZ3RfZGlzcGxheV9jb21taXRfYXRvbWljKCkuCisgKgorICogUGxlYXNlIHVz ZSBpZ3Rfb3V0cHV0X292ZXJyaWRlX21vZGUoKSBpZiB5b3Ugd2FudCB0byBzZXQgI0lHVF9DUlRD X01PREVfSUQsCisgKiBpdCB3b3JrcyBiZXR0ZXIgd2l0aCBsZWdhY3kgY29tbWl0LgorICovCit2 b2lkCitpZ3RfcGlwZV9vYmpfcmVwbGFjZV9wcm9wX2Jsb2IoaWd0X3BpcGVfdCAqcGlwZSwgZW51 bSBpZ3RfYXRvbWljX2NydGNfcHJvcGVydGllcyBwcm9wLCBjb25zdCB2b2lkICpwdHIsIHNpemVf dCBsZW5ndGgpCiB7CiAJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9IHBpcGUtPmRpc3BsYXk7CiAJ dWludDY0X3QgKmJsb2IgPSAmcGlwZS0+dmFsdWVzW3Byb3BdOwpAQCAtMjgzNiw3ICsyOTE2LDcg QEAgdm9pZCBpZ3Rfb3V0cHV0X292ZXJyaWRlX21vZGUoaWd0X291dHB1dF90ICpvdXRwdXQsIGRy bU1vZGVNb2RlSW5mbyAqbW9kZSkKIAogCWlmIChwaXBlKSB7CiAJCWlmIChvdXRwdXQtPmRpc3Bs YXktPmlzX2F0b21pYykKLQkJCWlndF9waXBlX3JlcGxhY2VfYmxvYihwaXBlLCBJR1RfQ1JUQ19N T0RFX0lELCBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCksIHNpemVvZigqbW9kZSkpOworCQkJ aWd0X3BpcGVfb2JqX3JlcGxhY2VfcHJvcF9ibG9iKHBpcGUsIElHVF9DUlRDX01PREVfSUQsIGln dF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KSwgc2l6ZW9mKCptb2RlKSk7CiAJCWVsc2UKIAkJCWln dF9waXBlX29ial9zZXRfcHJvcF9jaGFuZ2VkKHBpcGUsIElHVF9DUlRDX01PREVfSUQpOwogCX0K QEAgLTI4NjUsNyArMjk0NSw3IEBAIHZvaWQgaWd0X291dHB1dF9zZXRfcGlwZShpZ3Rfb3V0cHV0 X3QgKm91dHB1dCwgZW51bSBwaXBlIHBpcGUpCiAJCW9sZF9vdXRwdXQgPSBpZ3RfcGlwZV9nZXRf b3V0cHV0KG9sZF9waXBlKTsKIAkJaWYgKCFvbGRfb3V0cHV0KSB7CiAJCQlpZiAoZGlzcGxheS0+ aXNfYXRvbWljKQotCQkJCWlndF9waXBlX3JlcGxhY2VfYmxvYihvbGRfcGlwZSwgSUdUX0NSVENf TU9ERV9JRCwgTlVMTCwgMCk7CisJCQkJaWd0X3BpcGVfb2JqX3JlcGxhY2VfcHJvcF9ibG9iKG9s ZF9waXBlLCBJR1RfQ1JUQ19NT0RFX0lELCBOVUxMLCAwKTsKIAkJCWVsc2UKIAkJCQlpZ3RfcGlw ZV9vYmpfc2V0X3Byb3BfY2hhbmdlZChvbGRfcGlwZSwgSUdUX0NSVENfTU9ERV9JRCk7CiAKQEAg LTI4NzksNyArMjk1OSw3IEBAIHZvaWQgaWd0X291dHB1dF9zZXRfcGlwZShpZ3Rfb3V0cHV0X3Qg Km91dHB1dCwgZW51bSBwaXBlIHBpcGUpCiAKIAlpZiAocGlwZV9vYmopIHsKIAkJaWYgKGRpc3Bs YXktPmlzX2F0b21pYykKLQkJCWlndF9waXBlX3JlcGxhY2VfYmxvYihwaXBlX29iaiwgSUdUX0NS VENfTU9ERV9JRCwgaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpLCBzaXplb2YoZHJtTW9kZU1v ZGVJbmZvKSk7CisJCQlpZ3RfcGlwZV9vYmpfcmVwbGFjZV9wcm9wX2Jsb2IocGlwZV9vYmosIElH VF9DUlRDX01PREVfSUQsIGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KSwgc2l6ZW9mKGRybU1v ZGVNb2RlSW5mbykpOwogCQllbHNlCiAJCQlpZ3RfcGlwZV9vYmpfc2V0X3Byb3BfY2hhbmdlZChw aXBlX29iaiwgSUdUX0NSVENfTU9ERV9JRCk7CiAKQEAgLTI5MDgsMTggKzI5ODgsMTEgQEAgdm9p ZCBpZ3RfcGlwZV9yZWZyZXNoKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGVudW0gcGlwZSBwaXBl LCBib29sIGZvcmNlKQogCiAJCXBpcGVfb2JqLT52YWx1ZXNbSUdUX0NSVENfTU9ERV9JRF0gPSAw OwogCQlpZiAob3V0cHV0KQotCQkJaWd0X3BpcGVfcmVwbGFjZV9ibG9iKHBpcGVfb2JqLCBJR1Rf Q1JUQ19NT0RFX0lELCBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCksIHNpemVvZihkcm1Nb2Rl TW9kZUluZm8pKTsKKwkJCWlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihwaXBlX29iaiwg SUdUX0NSVENfTU9ERV9JRCwgaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpLCBzaXplb2YoZHJt TW9kZU1vZGVJbmZvKSk7CiAJfSBlbHNlCiAJCWlndF9waXBlX29ial9zZXRfcHJvcF9jaGFuZ2Vk KHBpcGVfb2JqLCBJR1RfQ1JUQ19NT0RFX0lEKTsKIH0KIAotdm9pZCBpZ3Rfb3V0cHV0X3NldF9z Y2FsaW5nX21vZGUoaWd0X291dHB1dF90ICpvdXRwdXQsIHVpbnQ2NF90IHNjYWxpbmdfbW9kZSkK LXsKLQlpZ3Rfb3V0cHV0X3NldF9wcm9wX3ZhbHVlKG91dHB1dCwgSUdUX0NPTk5FQ1RPUl9TQ0FM SU5HX01PREUsIHNjYWxpbmdfbW9kZSk7Ci0KLQlpZ3RfcmVxdWlyZShvdXRwdXQtPnByb3BzW0lH VF9DT05ORUNUT1JfU0NBTElOR19NT0RFXSk7Ci19Ci0KIGlndF9wbGFuZV90ICppZ3Rfb3V0cHV0 X2dldF9wbGFuZShpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaW50IHBsYW5lX2lkeCkKIHsKIAlpZ3Rf cGlwZV90ICpwaXBlOwpAQCAtMzExOSwyNCArMzE5Miw2IEBAIHZvaWQgaWd0X3BpcGVfcmVxdWVz dF9vdXRfZmVuY2UoaWd0X3BpcGVfdCAqcGlwZSkKIAlpZ3RfcGlwZV9vYmpfc2V0X3Byb3BfdmFs dWUocGlwZSwgSUdUX0NSVENfT1VUX0ZFTkNFX1BUUiwgKHB0cmRpZmZfdCkmcGlwZS0+b3V0X2Zl bmNlX2ZkKTsKIH0KIAotdm9pZAotaWd0X3BpcGVfc2V0X2RlZ2FtbWFfbHV0KGlndF9waXBlX3Qg KnBpcGUsIHZvaWQgKnB0ciwgc2l6ZV90IGxlbmd0aCkKLXsKLQlpZ3RfcGlwZV9yZXBsYWNlX2Js b2IocGlwZSwgSUdUX0NSVENfREVHQU1NQV9MVVQsIHB0ciwgbGVuZ3RoKTsKLX0KLQotdm9pZAot aWd0X3BpcGVfc2V0X2N0bV9tYXRyaXgoaWd0X3BpcGVfdCAqcGlwZSwgdm9pZCAqcHRyLCBzaXpl X3QgbGVuZ3RoKQotewotCWlndF9waXBlX3JlcGxhY2VfYmxvYihwaXBlLCBJR1RfQ1JUQ19DVE0s IHB0ciwgbGVuZ3RoKTsKLX0KLQotdm9pZAotaWd0X3BpcGVfc2V0X2dhbW1hX2x1dChpZ3RfcGlw ZV90ICpwaXBlLCB2b2lkICpwdHIsIHNpemVfdCBsZW5ndGgpCi17Ci0JaWd0X3BpcGVfcmVwbGFj ZV9ibG9iKHBpcGUsIElHVF9DUlRDX0dBTU1BX0xVVCwgcHRyLCBsZW5ndGgpOwotfQotCiAvKioK ICAqIGlndF9jcnRjX3NldF9iYWNrZ3JvdW5kOgogICogQHBpcGU6IHBpcGUgcG9pbnRlciB0byB3 aGljaCBiYWNrZ3JvdW5kIGNvbG9yIHRvIGJlIHNldApkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMu aCBiL2xpYi9pZ3Rfa21zLmgKaW5kZXggYjUzMTI3ZmZlZjVmLi4yZTRjMjM0MzdmNGUgMTAwNjQ0 Ci0tLSBhL2xpYi9pZ3Rfa21zLmgKKysrIGIvbGliL2lndF9rbXMuaApAQCAtMzY2LDcgKzM2Niw2 IEBAIGNvbnN0IGNoYXIgKmlndF9vdXRwdXRfbmFtZShpZ3Rfb3V0cHV0X3QgKm91dHB1dCk7CiBk cm1Nb2RlTW9kZUluZm8gKmlndF9vdXRwdXRfZ2V0X21vZGUoaWd0X291dHB1dF90ICpvdXRwdXQp Owogdm9pZCBpZ3Rfb3V0cHV0X292ZXJyaWRlX21vZGUoaWd0X291dHB1dF90ICpvdXRwdXQsIGRy bU1vZGVNb2RlSW5mbyAqbW9kZSk7CiB2b2lkIGlndF9vdXRwdXRfc2V0X3BpcGUoaWd0X291dHB1 dF90ICpvdXRwdXQsIGVudW0gcGlwZSBwaXBlKTsKLXZvaWQgaWd0X291dHB1dF9zZXRfc2NhbGlu Z19tb2RlKGlndF9vdXRwdXRfdCAqb3V0cHV0LCB1aW50NjRfdCBzY2FsaW5nX21vZGUpOwogaWd0 X3BsYW5lX3QgKmlndF9vdXRwdXRfZ2V0X3BsYW5lKGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpbnQg cGxhbmVfaWR4KTsKIGlndF9wbGFuZV90ICppZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGlndF9v dXRwdXRfdCAqb3V0cHV0LCBpbnQgcGxhbmVfdHlwZSk7CiBpZ3Rfb3V0cHV0X3QgKmlndF9vdXRw dXRfZnJvbV9jb25uZWN0b3IoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwKQEAgLTM4MSw5ICszODAs NiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaWd0X3BsYW5lX3N1cHBvcnRzX3JvdGF0aW9uKGlndF9w bGFuZV90ICpwbGFuZSkKIAlyZXR1cm4gcGxhbmUtPnByb3BzW0lHVF9QTEFORV9ST1RBVElPTl0g IT0gMDsKIH0KIHZvaWQgaWd0X3BpcGVfcmVxdWVzdF9vdXRfZmVuY2UoaWd0X3BpcGVfdCAqcGlw ZSk7Ci12b2lkIGlndF9waXBlX3NldF9kZWdhbW1hX2x1dChpZ3RfcGlwZV90ICpwaXBlLCB2b2lk ICpwdHIsIHNpemVfdCBsZW5ndGgpOwotdm9pZCBpZ3RfcGlwZV9zZXRfY3RtX21hdHJpeChpZ3Rf cGlwZV90ICpwaXBlLCB2b2lkICpwdHIsIHNpemVfdCBsZW5ndGgpOwotdm9pZCBpZ3RfcGlwZV9z ZXRfZ2FtbWFfbHV0KGlndF9waXBlX3QgKnBpcGUsIHZvaWQgKnB0ciwgc2l6ZV90IGxlbmd0aCk7 CiAKIHZvaWQgaWd0X3BsYW5lX3NldF9mYihpZ3RfcGxhbmVfdCAqcGxhbmUsIHN0cnVjdCBpZ3Rf ZmIgKmZiKTsKIHZvaWQgaWd0X3BsYW5lX3NldF9mZW5jZV9mZChpZ3RfcGxhbmVfdCAqcGxhbmUs IGludCBmZW5jZV9mZCk7CkBAIC01MTMsNiArNTA5LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp Z3Rfb3V0cHV0X2lzX2Nvbm5lY3RlZChpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKIAkJaWd0X3BsYW5l X3NldF9wcm9wX2NoYW5nZWQocGxhbmUsIHByb3ApOyBcCiAJfSB3aGlsZSAoMCkKIAorZXh0ZXJu IHZvaWQgaWd0X3BsYW5lX3JlcGxhY2VfcHJvcF9ibG9iKGlndF9wbGFuZV90ICpwbGFuZSwKKwkJ CQkJZW51bSBpZ3RfYXRvbWljX3BsYW5lX3Byb3BlcnRpZXMgcHJvcCwKKwkJCQkJY29uc3Qgdm9p ZCAqcHRyLCBzaXplX3QgbGVuZ3RoKTsKKwogI2RlZmluZSBpZ3Rfb3V0cHV0X2lzX3Byb3BfY2hh bmdlZChvdXRwdXQsIHByb3ApIFwKIAkoISEoKG91dHB1dCktPmNoYW5nZWQgJiAoMSA8PCAocHJv cCkpKSkKICNkZWZpbmUgaWd0X291dHB1dF9zZXRfcHJvcF9jaGFuZ2VkKG91dHB1dCwgcHJvcCkg XApAQCAtNTI3LDYgKzUyNywxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaWd0X291dHB1dF9pc19j b25uZWN0ZWQoaWd0X291dHB1dF90ICpvdXRwdXQpCiAJCWlndF9vdXRwdXRfc2V0X3Byb3BfY2hh bmdlZChvdXRwdXQsIHByb3ApOyBcCiAJfSB3aGlsZSAoMCkKIAorZXh0ZXJuIHZvaWQgaWd0X291 dHB1dF9yZXBsYWNlX3Byb3BfYmxvYihpZ3Rfb3V0cHV0X3QgKm91dHB1dCwKKwkJCQkJIGVudW0g aWd0X2F0b21pY19jb25uZWN0b3JfcHJvcGVydGllcyBwcm9wLAorCQkJCQkgY29uc3Qgdm9pZCAq cHRyLCBzaXplX3QgbGVuZ3RoKTsKKwogI2RlZmluZSBpZ3RfcGlwZV9vYmpfaXNfcHJvcF9jaGFu Z2VkKHBpcGVfb2JqLCBwcm9wKSBcCiAJKCEhKChwaXBlX29iaiktPmNoYW5nZWQgJiAoMSA8PCAo cHJvcCkpKSkKIApAQCAtNTU0LDYgKzU1OCwxMyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaWd0X291 dHB1dF9pc19jb25uZWN0ZWQoaWd0X291dHB1dF90ICpvdXRwdXQpCiAjZGVmaW5lIGlndF9waXBl X3NldF9wcm9wX3ZhbHVlKGRpc3BsYXksIHBpcGUsIHByb3AsIHZhbHVlKSBcCiAJaWd0X3BpcGVf b2JqX3NldF9wcm9wX3ZhbHVlKCYoZGlzcGxheSktPnBpcGVzWyhwaXBlKV0sIHByb3AsIHZhbHVl KQogCitleHRlcm4gdm9pZCBpZ3RfcGlwZV9vYmpfcmVwbGFjZV9wcm9wX2Jsb2IoaWd0X3BpcGVf dCAqcGlwZV9vYmosCisJCQkJCSAgIGVudW0gaWd0X2F0b21pY19jcnRjX3Byb3BlcnRpZXMgcHJv cCwKKwkJCQkJICAgY29uc3Qgdm9pZCAqcHRyLCBzaXplX3QgbGVuZ3RoKTsKKworI2RlZmluZSBp Z3RfcGlwZV9yZXBsYWNlX3Byb3BfYmxvYihkaXNwbGF5LCBwaXBlLCBwcm9wLCBwdHIsIGxlbmd0 aCkgXAorCWlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYigmKGRpc3BsYXkpLT5waXBlc1so cGlwZSldLCBwcm9wLCBwdHIsIGxlbmd0aCkKKwogdm9pZCBpZ3RfcGlwZV9yZWZyZXNoKGlndF9k aXNwbGF5X3QgKmRpc3BsYXksIGVudW0gcGlwZSBwaXBlLCBib29sIGZvcmNlKTsKIAogdm9pZCBp Z3RfZW5hYmxlX2Nvbm5lY3RvcnModm9pZCk7CmRpZmYgLS1naXQgYS90ZXN0cy9jaGFtZWxpdW0u YyBiL3Rlc3RzL2NoYW1lbGl1bS5jCmluZGV4IGUzZDgxMzU3YjMyYi4uYWUxNjQ5MjBlODZlIDEw MDY0NAotLS0gYS90ZXN0cy9jaGFtZWxpdW0uYworKysgYi90ZXN0cy9jaGFtZWxpdW0uYwpAQCAt NDYyLDkgKzQ2Miw5IEBAIGVuYWJsZV9vdXRwdXQoZGF0YV90ICpkYXRhLAogCWlndF9vdXRwdXRf c2V0X3BpcGUob3V0cHV0LCBvdXRwdXQtPmNvbmZpZy5waXBlKTsKIAogCS8qIENsZWFyIGFueSBj b2xvciBjb3JyZWN0aW9uIHZhbHVlcyB0aGF0IG1pZ2h0IGJlIGVuYWJsZWQgKi8KLQlpZ3RfcGlw ZV9zZXRfZGVnYW1tYV9sdXQocHJpbWFyeS0+cGlwZSwgTlVMTCwgMCk7Ci0JaWd0X3BpcGVfc2V0 X2dhbW1hX2x1dChwcmltYXJ5LT5waXBlLCBOVUxMLCAwKTsKLQlpZ3RfcGlwZV9zZXRfY3RtX21h dHJpeChwcmltYXJ5LT5waXBlLCBOVUxMLCAwKTsKKwlpZ3RfcGlwZV9vYmpfcmVwbGFjZV9wcm9w X2Jsb2IocHJpbWFyeS0+cGlwZSwgSUdUX0NSVENfREVHQU1NQV9MVVQsIE5VTEwsIDApOworCWln dF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihwcmltYXJ5LT5waXBlLCBJR1RfQ1JUQ19HQU1N QV9MVVQsIE5VTEwsIDApOworCWlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihwcmltYXJ5 LT5waXBlLCBJR1RfQ1JUQ19DVE0sIE5VTEwsIDApOwogCiAJa21zdGVzdF9zZXRfY29ubmVjdG9y X2Jyb2FkY2FzdF9yZ2IoZGlzcGxheS0+ZHJtX2ZkLCBjb25uZWN0b3IsCiAJCQkJCSAgICBCUk9B RENBU1RfUkdCX0ZVTEwpOwpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2NvbG9yLmMgYi90ZXN0cy9r bXNfY29sb3IuYwppbmRleCBiY2Q0OGQ4OTg3NWMuLmUzMGU2YmY0ZTQwOSAxMDA2NDQKLS0tIGEv dGVzdHMva21zX2NvbG9yLmMKKysrIGIvdGVzdHMva21zX2NvbG9yLmMKQEAgLTE4OSw3ICsxODks NyBAQCBzdGF0aWMgdm9pZCBzZXRfZGVnYW1tYShkYXRhX3QgKmRhdGEsCiAJCQkJCQkgICBkYXRh LT5kZWdhbW1hX2x1dF9zaXplLAogCQkJCQkJICAgZGF0YS0+Y29sb3JfZGVwdGgsIDApOwogCi0J aWd0X3BpcGVfc2V0X2RlZ2FtbWFfbHV0KHBpcGUsIGx1dCwgc2l6ZSk7CisJaWd0X3BpcGVfb2Jq X3JlcGxhY2VfcHJvcF9ibG9iKHBpcGUsIElHVF9DUlRDX0RFR0FNTUFfTFVULCBsdXQsIHNpemUp OwogCiAJZnJlZShsdXQpOwogfQpAQCAtMjA0LDcgKzIwNCw3IEBAIHN0YXRpYyB2b2lkIHNldF9n YW1tYShkYXRhX3QgKmRhdGEsCiAJCQkJCQkgICBkYXRhLT5nYW1tYV9sdXRfc2l6ZSwKIAkJCQkJ CSAgIGRhdGEtPmNvbG9yX2RlcHRoLCAwKTsKIAotCWlndF9waXBlX3NldF9nYW1tYV9sdXQocGlw ZSwgbHV0LCBzaXplKTsKKwkJaWd0X3BpcGVfb2JqX3JlcGxhY2VfcHJvcF9ibG9iKHBpcGUsIElH VF9DUlRDX0dBTU1BX0xVVCwgbHV0LCBzaXplKTsKIAogCWZyZWUobHV0KTsKIH0KQEAgLTIyNCwx MiArMjI0LDEyIEBAIHN0YXRpYyB2b2lkIHNldF9jdG0oaWd0X3BpcGVfdCAqcGlwZSwgY29uc3Qg ZG91YmxlICpjb2VmZmljaWVudHMpCiAJCQkJKGludDY0X3QpIChjb2VmZmljaWVudHNbaV0gKiAo KGludDY0X3QpIDFMIDw8IDMyKSk7CiAJfQogCi0JaWd0X3BpcGVfc2V0X2N0bV9tYXRyaXgocGlw ZSwgJmN0bSwgc2l6ZW9mKGN0bSkpOworCWlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihw aXBlLCBJR1RfQ1JUQ19DVE0sICZjdG0sIHNpemVvZihjdG0pKTsKIH0KIAotI2RlZmluZSBkaXNh YmxlX2RlZ2FtbWEocGlwZSkgaWd0X3BpcGVfc2V0X2RlZ2FtbWFfbHV0KHBpcGUsIE5VTEwsIDAp Ci0jZGVmaW5lIGRpc2FibGVfZ2FtbWEocGlwZSkgaWd0X3BpcGVfc2V0X2dhbW1hX2x1dChwaXBl LCBOVUxMLCAwKQotI2RlZmluZSBkaXNhYmxlX2N0bShwaXBlKSBpZ3RfcGlwZV9zZXRfY3RtX21h dHJpeChwaXBlLCBOVUxMLCAwKQorI2RlZmluZSBkaXNhYmxlX2RlZ2FtbWEocGlwZSkgaWd0X3Bp cGVfb2JqX3JlcGxhY2VfcHJvcF9ibG9iKHBpcGUsIElHVF9DUlRDX0RFR0FNTUFfTFVULCBOVUxM LCAwKQorI2RlZmluZSBkaXNhYmxlX2dhbW1hKHBpcGUpIGlndF9waXBlX29ial9yZXBsYWNlX3By b3BfYmxvYihwaXBlLCBJR1RfQ1JUQ19HQU1NQV9MVVQsIE5VTEwsIDApCisjZGVmaW5lIGRpc2Fi bGVfY3RtKHBpcGUpIGlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihwaXBlLCBJR1RfQ1JU Q19DVE0sIE5VTEwsIDApCiAKIHN0YXRpYyB2b2lkIG91dHB1dF9zZXRfcHJvcGVydHlfZW51bShp Z3Rfb3V0cHV0X3QgKm91dHB1dCwKIAkJCQkgICAgIGNvbnN0IGNoYXIgKnByb3BlcnR5LAotLSAK Mi4xNC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK